References

Guide: https://github.com/tommytracey/AIND-Capstone https://tommytracey.github.io/AIND-Capstone/machine_translation.html

Why TimeDistributedDenseLayer: https://datascience.stackexchange.com/questions/10836/the-difference-between-dense-and-timedistributeddense-of-keras

Keras Documentation: https://tensorflow.rstudio.com/reference/keras/

Stackoverflow: https://stackoverflow.com/questions/10961141/setting-up-a-3d-matrix-in-r-and-accessing-certain-elements

Dataset: http://www.manythings.org/anki/

Attempt to train words using 8-10 Words accuracy could be due to PADDING

Importing of Libraries

library(deepviz)
language <- "French"
language_code <- "fr"
file_name <- paste0("translation_", language_code, ".csv")
train <- read.csv(file_name, encoding="UTF-8", stringsAsFactors=FALSE)
# language <- "Indonesian"
# language_code <- "ind"
# file_name <- paste0("translation_", language_code, ".csv")
# train <- read.csv(file_name, encoding="UTF-8", stringsAsFactors=FALSE)

Amending column names

colnames(train) <- c("English", language)
train

Tokenizer

tokenize <- function(x){
  tokenizer <- text_tokenizer(num_words = 1000000)
  fit_text_tokenizer(tokenizer, x)
  sequences <- texts_to_sequences(tokenizer, x)
  return(c(sequences, tokenizer))
}

Padding

pad <- function(x, length=NULL){
  return(pad_sequences(x, maxlen = length, padding = 'post'))
}

Subsetting to 8-10 words within the English sentence

Finding number of words within an sentence

# sentences_length_vec <- function(word_list){
#   output <- tokenize(word_list)
#   sentence_length <- c()
#   for(i in 1:length(word_list)){
#     sentence_length[i] <- length(output[[i]])
#   }
#   
#   sentence_length
# }
# 
# english_sentence_length <- sentences_length_vec(list(train[, 1])[[1]])
# other_sentence_length <- sentences_length_vec(list(train[, 2])[[1]])
# 
# 
# ## Adding each sentence length to the dataframe `train`
# train$english_length <- english_sentence_length 
# train$other_length <- other_sentence_length
# 
# tail(train)

Conducting the subset of the dataframe

# lower_bound_words <- 8; upper_bound_words <- 10 
# subset_train <- subset(train, 
#                        train$english_length >= lower_bound_words & train$english_length <= upper_bound_words 
#                        & train$other_length >= lower_bound_words & train$other_length <= upper_bound_words
#                          )
# 
# ## Checking for the number of rows within the new subsetted dataframe for testing purposes.
# head(subset_train)
# tail(subset_train)
# nrow(subset_train)

Example for Tokenisation & Padding

text_sentences = c('The quick brown fox jumps over the lazy dog .',
    'By Jove , my quick study of lexicography won a prize .',
    'This is a short sentence .')
token_index <- length(text_sentences) + 1
output <- tokenize(text_sentences)
Loaded Tensorflow version 2.8.0
text_tokenized <- output[1:length(text_sentences)]
# print(output)

# Finding out the integer allocation to each word
tk <- output[[token_index]]$word_index
# print(tk)
# print(length(tk))
# print(table(tk))

Seeing the input vs output for each tokenized sentences

for(i in 1:length(text_sentences)){
  print(paste0("Sequence in Text ", i, ":"))
  print(paste0("Input: ", text_sentences[i]))
  print(paste0("Output: ", list(text_tokenized[[i]])))
  cat("\n")
}
[1] "Sequence in Text 1:"
[1] "Input: The quick brown fox jumps over the lazy dog ."
[1] "Output: c(1, 2, 4, 5, 6, 7, 1, 8, 9)"

[1] "Sequence in Text 2:"
[1] "Input: By Jove , my quick study of lexicography won a prize ."
[1] "Output: c(10, 11, 12, 2, 13, 14, 15, 16, 3, 17)"

[1] "Sequence in Text 3:"
[1] "Input: This is a short sentence ."
[1] "Output: c(18, 19, 3, 20, 21)"

Padding each tokenized sentences

# padded_text <- pad(text_tokenized)
# for(i in 1:length(text_sentences)){
#   print(paste0("Sequence in Text ", i, ":"))
#   print(paste0("Input: ", text_sentences[i]))
#   print(paste0("Output: ", list(text_tokenized[[i]])))
#   print(paste0("Output (Padded): ", list(padded_text[i,])))
# }

Preprocessing Component (Tidying up of characters and sentences)

Getting Compiled English Text (Testing)

for(i in 1:n){
  # if(i %% 100 != 0) next
  print(paste0("Sequence in Text ", i, ":"))
  print(paste0("Input: ", word_list[i]))
  print(paste0("Output: ", list(new_text_tokenized[[i]])))
  print(paste0("Output (Padded): ", list(new_padded_text[i,])))
  cat("\n")
}
[1] "Sequence in Text 1:"
[1] "Input: new jersey est parfois calme pendant l' automne , et il est neigeux en avril ."
[1] "Output: c(15, 16, 1, 6, 7, 17, 18, 19, 3, 4, 1, 20, 2, 21)"
[1] "Output (Padded): c(15, 16, 1, 6, 7, 17, 18, 19, 3, 4, 1, 20, 2, 21)"

[1] "Sequence in Text 2:"
[1] "Input: les états-unis est généralement froid en juillet , et il gèle habituellement en novembre ."
[1] "Output: c(8, 9, 10, 1, 5, 11, 2, 22, 3, 4, 23, 24, 2, 25)"
[1] "Output (Padded): c(8, 9, 10, 1, 5, 11, 2, 22, 3, 4, 23, 24, 2, 25)"

[1] "Sequence in Text 3:"
[1] "Input: california est généralement calme en mars , et il est généralement chaud en juin ."
[1] "Output: c(26, 1, 5, 7, 2, 27, 3, 4, 1, 5, 28, 2, 12)"
[1] "Output (Padded): c(26, 1, 5, 7, 2, 27, 3, 4, 1, 5, 28, 2, 12, 0)"

[1] "Sequence in Text 4:"
[1] "Input: les états-unis est parfois légère en juin , et il fait froid en septembre ."
[1] "Output: c(8, 9, 10, 1, 6, 29, 2, 12, 3, 4, 30, 11, 2, 31)"
[1] "Output (Padded): c(8, 9, 10, 1, 6, 29, 2, 12, 3, 4, 30, 11, 2, 31)"

[1] "Sequence in Text 5:"
[1] "Input: votre moins aimé fruit est le raisin , mais mon moins aimé est la pomme ."
[1] "Output: c(32, 13, 14, 33, 1, 34, 35, 36, 37, 13, 14, 1, 38, 39)"
[1] "Output (Padded): c(32, 13, 14, 33, 1, 34, 35, 36, 37, 13, 14, 1, 38, 39)"

[1] "Sequence in Text 6:"
[1] "Input: NA"
Error in new_text_tokenized[[i]] : subscript out of bounds

Getting Compiled Other Language Text (Testing)

# n <- nrow(subset_train)
n <- 5
word_list <- list(train[, 2])[[1]][1:n]
new_output <- tokenize(word_list)
new_text_tokenized <- new_output[1:n]
new_padded_text <- pad(new_text_tokenized)

for(i in 1:n){
  # if(i %% 100 != 0) next
  print(paste0("Sequence in Text ", i, ":"))
  print(paste0("Input: ", word_list[i]))
  print(paste0("Output: ", list(new_text_tokenized[[i]])))
  print(paste0("Output (Padded): ", list(new_padded_text[i,])))
}
[1] "Sequence in Text 1:"
[1] "Input: new jersey est parfois calme pendant l' automne , et il est neigeux en avril ."
[1] "Output: c(15, 16, 1, 6, 7, 17, 18, 19, 3, 4, 1, 20, 2, 21)"
[1] "Output (Padded): c(15, 16, 1, 6, 7, 17, 18, 19, 3, 4, 1, 20, 2, 21)"
[1] "Sequence in Text 2:"
[1] "Input: les états-unis est généralement froid en juillet , et il gèle habituellement en novembre ."
[1] "Output: c(8, 9, 10, 1, 5, 11, 2, 22, 3, 4, 23, 24, 2, 25)"
[1] "Output (Padded): c(8, 9, 10, 1, 5, 11, 2, 22, 3, 4, 23, 24, 2, 25)"
[1] "Sequence in Text 3:"
[1] "Input: california est généralement calme en mars , et il est généralement chaud en juin ."
[1] "Output: c(26, 1, 5, 7, 2, 27, 3, 4, 1, 5, 28, 2, 12)"
[1] "Output (Padded): c(26, 1, 5, 7, 2, 27, 3, 4, 1, 5, 28, 2, 12, 0)"
[1] "Sequence in Text 4:"
[1] "Input: les états-unis est parfois légère en juin , et il fait froid en septembre ."
[1] "Output: c(8, 9, 10, 1, 6, 29, 2, 12, 3, 4, 30, 11, 2, 31)"
[1] "Output (Padded): c(8, 9, 10, 1, 6, 29, 2, 12, 3, 4, 30, 11, 2, 31)"
[1] "Sequence in Text 5:"
[1] "Input: votre moins aimé fruit est le raisin , mais mon moins aimé est la pomme ."
[1] "Output: c(32, 13, 14, 33, 1, 34, 35, 36, 37, 13, 14, 1, 38, 39)"
[1] "Output (Padded): c(32, 13, 14, 33, 1, 34, 35, 36, 37, 13, 14, 1, 38, 39)"

Preprocessing both languages compilations

preprocess_text <- function(x, y){
  output_x <- tokenize(x)
  output_y <- tokenize(y)
  
  preprocess_x <- output_x[1:length(x)]; x_tk <- output_x[[length(x) + 1]]$word_index
  preprocess_y <- output_y[1:length(y)]; y_tk <- output_y[[length(y) + 1]]$word_index
  
  # print(preprocess_x)
  
  preprocess_x <- pad(preprocess_x)
  preprocess_y <- pad(preprocess_y)
  
  # print(preprocess_x)
  
  # Converting from a 2D matrix to a 3D tensor
  # preprocess_x <- array(preprocess_x[[1]], c(dim(preprocess_x[[1]])[1], dim(preprocess_x[[1]])[2], 1))
  # preprocess_y <- array(preprocess_y[[1]], c(dim(preprocess_y[[1]])[1], dim(preprocess_y[[1]])[2], 1))
  
  return(list(preprocess_x, preprocess_y, x_tk, y_tk))
}

Full Data

train_x <- list(train[, 1])[[1]]
train_y <- list(train[, 2])[[1]]
# print(subset_train_x)

process_output <- preprocess_text(train_x, train_y)
# print(process_output[4],)
preprocess_x <- process_output[1]; preprocess_y <- process_output[2]; x_tk <- process_output[3]; y_tk <- process_output[4]
# print(preprocess_x[[1]])
# print(preprocess_y[[1]])


# Conversion back to list of words from tokenized word list
# attributes(x_tk[[1]])$names
# length(y_tk[[1]])

Subset data

# n <- nrow(train) #1000
# subset_train_x <- list(subset_train[, 1])[[1]][1:n]
# subset_train_y <- list(subset_train[, 2])[[1]][1:n]
# # print(subset_train_x)
# 
# process_output <- preprocess_text(subset_train_x, subset_train_y)
# # print(process_output[4],)
# preprocess_x <- process_output[1]; preprocess_y <- process_output[2]; x_tk <- process_output[3]; y_tk <- process_output[4]
# # print(preprocess_x[[1]])
# # print(preprocess_y[[1]])
# 
# 
# # Conversion back to list of words from tokenized word list
# # attributes(x_tk[[1]])$names
# # length(y_tk[[1]])

Obtaining the maximum column number and re-padding

col_x <- dim(preprocess_x[[1]])[2]
col_y <- dim(preprocess_y[[1]])[2]

if(col_x >= col_y){
  max_col <- col_x
}else{
  max_col <- col_y
}

tmp_x <- pad(preprocess_x[[1]], max_col)
tmp_y <- pad(preprocess_y[[1]], max_col)

Checking Correspondance between subset_train and tmp

row <- 5
head(tmp_x)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21]
[1,]   17   23    1    8   67    4   39    7    3     1    55     2    44     0     0     0     0     0     0     0     0
[2,]    5   20   21    1    9   62    4   43    7     3     1     9    51     2    45     0     0     0     0     0     0
[3,]   22    1    9   67    4   38    7    3    1     9    68     2    34     0     0     0     0     0     0     0     0
[4,]    5   20   21    1    8   64    4   34    7     3     1    57     2    42     0     0     0     0     0     0     0
[5,]   29   12   16   13    1    5   82    6   30    12    16     1     5    83     0     0     0     0     0     0     0
[6,]   31   11   13    1    5   84    6   30   11     1     5    82     0     0     0     0     0     0     0     0     0
train_x[row]
[1] "your least liked fruit is the grape , but my least liked is the apple ."

Calculating Sparsity

calculate_sparsity <- function(df_matrix){
  zero_count <- 0
  total_count <- nrow(df_matrix) * ncol(tmp_x)
  for(i in 1:nrow(df_matrix)){
    for(j in 1:ncol(df_matrix)){
      if(df_matrix[i, j] == 0){
        zero_count = zero_count + 1
      }
    }
  }
  zero_count/total_count
}

print(paste("The Sparsity of the matrix is: ", round(calculate_sparsity(tmp_x)*100, 2), "%"))
[1] "The Sparsity of the matrix is:  46.37 %"

Conversion of 2D matrix to tensor

convert2tensor <- function(preprocess_data){
  preprocess_data <- array(preprocess_data, c(dim(preprocess_data)[1], dim(preprocess_data)[2], 1))
  return(preprocess_data)
}

# array(preprocess_x[[1]], c(dim(preprocess_x[[1]])[1], dim(preprocess_x[[1]])[2], 1))
# dim(array(preprocess_x[[1]], c(dim(preprocess_x[[1]])[1], dim(preprocess_x[[1]])[2], 1)))[2:3]

Converting to tensor

tensor_x <- convert2tensor(tmp_x)
dim(tensor_x)
[1] 137860     21      1
tensor_x[1, , ]
 [1] 17 23  1  8 67  4 39  7  3  1 55  2 44  0  0  0  0  0  0  0  0
tensor_y <- convert2tensor(tmp_y)
# tensor_y

Converting the logits back to text


logits_to_text <- function(logits, tokenizer, predict=FALSE){
  tokenizer_words <- attributes(tokenizer[[1]])$names
  text <- c()
  if(predict == TRUE){
    logits <- logits - 1 ## For prediction conversion only 
  }
  for(i in logits){
    if(i == 0){
      text <- c(text, "<PAD>")
    }else{
      text <- c(text, tokenizer_words[i])
    }
  }
  return(text)
}

# Testing to convert the first row back to text
# preprocess_x[[1]][1, ]
# preprocess_x[[1]]
logits_to_text(preprocess_x[[1]][1, ], x_tk)
 [1] "new"       "jersey"    "is"        "sometimes" "quiet"     "during"    "autumn"    "and"       "it"        "is"        "snowy"    
[12] "in"        "april"     "<PAD>"     "<PAD>"    

Building a simple RNN model


history = model_RNN %>% fit(
  x = tensor_x, y = tensor_y,
  epochs           = 10,
  batch_size = 1024,
  validation_split = 0.2,
)
Epoch 1/10

  1/108 [..............................] - ETA: 2:14 - loss: 5.9325 - accuracy: 0.0017
  2/108 [..............................] - ETA: 59s - loss: 5.2180 - accuracy: 0.1851 
  3/108 [..............................] - ETA: 1:00 - loss: 4.5181 - accuracy: 0.2649
  4/108 [>.............................] - ETA: 58s - loss: 4.1406 - accuracy: 0.2892 
  5/108 [>.............................] - ETA: 56s - loss: 3.8583 - accuracy: 0.3205
  6/108 [>.............................] - ETA: 56s - loss: 3.6601 - accuracy: 0.3413
  7/108 [>.............................] - ETA: 55s - loss: 3.5090 - accuracy: 0.3571
  8/108 [=>............................] - ETA: 54s - loss: 3.3824 - accuracy: 0.3723
  9/108 [=>............................] - ETA: 54s - loss: 3.2817 - accuracy: 0.3831
 10/108 [=>............................] - ETA: 53s - loss: 3.1962 - accuracy: 0.3921
 11/108 [==>...........................] - ETA: 52s - loss: 3.1195 - accuracy: 0.4008
 12/108 [==>...........................] - ETA: 52s - loss: 3.0511 - accuracy: 0.4089
 13/108 [==>...........................] - ETA: 51s - loss: 2.9928 - accuracy: 0.4150
 14/108 [==>...........................] - ETA: 51s - loss: 2.9375 - accuracy: 0.4217
 15/108 [===>..........................] - ETA: 50s - loss: 2.8855 - accuracy: 0.4283
 16/108 [===>..........................] - ETA: 50s - loss: 2.8375 - accuracy: 0.4343
 17/108 [===>..........................] - ETA: 49s - loss: 2.7932 - accuracy: 0.4398
 18/108 [====>.........................] - ETA: 49s - loss: 2.7527 - accuracy: 0.4449
 19/108 [====>.........................] - ETA: 48s - loss: 2.7135 - accuracy: 0.4499
 20/108 [====>.........................] - ETA: 48s - loss: 2.6776 - accuracy: 0.4544
 21/108 [====>.........................] - ETA: 47s - loss: 2.6410 - accuracy: 0.4588
 22/108 [=====>........................] - ETA: 47s - loss: 2.6075 - accuracy: 0.4631
 23/108 [=====>........................] - ETA: 46s - loss: 2.5770 - accuracy: 0.4670
 24/108 [=====>........................] - ETA: 46s - loss: 2.5479 - accuracy: 0.4706
 25/108 [=====>........................] - ETA: 45s - loss: 2.5200 - accuracy: 0.4741
 26/108 [======>.......................] - ETA: 45s - loss: 2.4932 - accuracy: 0.4774
 27/108 [======>.......................] - ETA: 44s - loss: 2.4683 - accuracy: 0.4806
 28/108 [======>.......................] - ETA: 44s - loss: 2.4432 - accuracy: 0.4838
 29/108 [=======>......................] - ETA: 43s - loss: 2.4281 - accuracy: 0.4857
 30/108 [=======>......................] - ETA: 42s - loss: 2.4140 - accuracy: 0.4875
 31/108 [=======>......................] - ETA: 42s - loss: 2.3998 - accuracy: 0.4888
 32/108 [=======>......................] - ETA: 41s - loss: 2.3855 - accuracy: 0.4901
 33/108 [========>.....................] - ETA: 41s - loss: 2.3710 - accuracy: 0.4917
 34/108 [========>.....................] - ETA: 40s - loss: 2.3570 - accuracy: 0.4935
 35/108 [========>.....................] - ETA: 40s - loss: 2.3443 - accuracy: 0.4951
 36/108 [=========>....................] - ETA: 39s - loss: 2.3312 - accuracy: 0.4966
 37/108 [=========>....................] - ETA: 39s - loss: 2.3186 - accuracy: 0.4980
 38/108 [=========>....................] - ETA: 38s - loss: 2.3058 - accuracy: 0.4994
 39/108 [=========>....................] - ETA: 38s - loss: 2.2927 - accuracy: 0.5010
 40/108 [==========>...................] - ETA: 37s - loss: 2.2806 - accuracy: 0.5023
 41/108 [==========>...................] - ETA: 37s - loss: 2.2674 - accuracy: 0.5039
 42/108 [==========>...................] - ETA: 36s - loss: 2.2549 - accuracy: 0.5054
 43/108 [==========>...................] - ETA: 36s - loss: 2.2427 - accuracy: 0.5071
 44/108 [===========>..................] - ETA: 35s - loss: 2.2309 - accuracy: 0.5085
 45/108 [===========>..................] - ETA: 34s - loss: 2.2194 - accuracy: 0.5099
 46/108 [===========>..................] - ETA: 34s - loss: 2.2078 - accuracy: 0.5113
 47/108 [============>.................] - ETA: 33s - loss: 2.1967 - accuracy: 0.5125
 48/108 [============>.................] - ETA: 33s - loss: 2.1856 - accuracy: 0.5138
 49/108 [============>.................] - ETA: 32s - loss: 2.1747 - accuracy: 0.5150
 50/108 [============>.................] - ETA: 32s - loss: 2.1636 - accuracy: 0.5164
 51/108 [=============>................] - ETA: 31s - loss: 2.1528 - accuracy: 0.5177
 52/108 [=============>................] - ETA: 31s - loss: 2.1418 - accuracy: 0.5191
 53/108 [=============>................] - ETA: 30s - loss: 2.1314 - accuracy: 0.5204
 54/108 [==============>...............] - ETA: 30s - loss: 2.1216 - accuracy: 0.5217
 55/108 [==============>...............] - ETA: 29s - loss: 2.1116 - accuracy: 0.5230
 56/108 [==============>...............] - ETA: 28s - loss: 2.1021 - accuracy: 0.5241
 57/108 [==============>...............] - ETA: 28s - loss: 2.0920 - accuracy: 0.5255
 58/108 [===============>..............] - ETA: 27s - loss: 2.0824 - accuracy: 0.5267
 59/108 [===============>..............] - ETA: 27s - loss: 2.0730 - accuracy: 0.5279
 60/108 [===============>..............] - ETA: 26s - loss: 2.0637 - accuracy: 0.5291
 61/108 [===============>..............] - ETA: 26s - loss: 2.0550 - accuracy: 0.5301
 62/108 [================>.............] - ETA: 25s - loss: 2.0464 - accuracy: 0.5312
 63/108 [================>.............] - ETA: 25s - loss: 2.0378 - accuracy: 0.5323
 64/108 [================>.............] - ETA: 24s - loss: 2.0293 - accuracy: 0.5334
 65/108 [=================>............] - ETA: 24s - loss: 2.0208 - accuracy: 0.5345
 66/108 [=================>............] - ETA: 23s - loss: 2.0131 - accuracy: 0.5354
 67/108 [=================>............] - ETA: 22s - loss: 2.0051 - accuracy: 0.5365
 68/108 [=================>............] - ETA: 22s - loss: 1.9972 - accuracy: 0.5375
 69/108 [==================>...........] - ETA: 21s - loss: 1.9900 - accuracy: 0.5384
 70/108 [==================>...........] - ETA: 21s - loss: 1.9829 - accuracy: 0.5392
 71/108 [==================>...........] - ETA: 20s - loss: 1.9757 - accuracy: 0.5401
 72/108 [===================>..........] - ETA: 20s - loss: 1.9685 - accuracy: 0.5410
 73/108 [===================>..........] - ETA: 19s - loss: 1.9619 - accuracy: 0.5418
 74/108 [===================>..........] - ETA: 19s - loss: 1.9551 - accuracy: 0.5426
 75/108 [===================>..........] - ETA: 18s - loss: 1.9482 - accuracy: 0.5435
 76/108 [====================>.........] - ETA: 17s - loss: 1.9415 - accuracy: 0.5443
 77/108 [====================>.........] - ETA: 17s - loss: 1.9350 - accuracy: 0.5451
 78/108 [====================>.........] - ETA: 16s - loss: 1.9285 - accuracy: 0.5459
 79/108 [====================>.........] - ETA: 16s - loss: 1.9222 - accuracy: 0.5468
 80/108 [=====================>........] - ETA: 15s - loss: 1.9157 - accuracy: 0.5477
 81/108 [=====================>........] - ETA: 15s - loss: 1.9094 - accuracy: 0.5485
 82/108 [=====================>........] - ETA: 14s - loss: 1.9035 - accuracy: 0.5493
 83/108 [======================>.......] - ETA: 14s - loss: 1.8974 - accuracy: 0.5500
 84/108 [======================>.......] - ETA: 13s - loss: 1.8917 - accuracy: 0.5507
 85/108 [======================>.......] - ETA: 12s - loss: 1.8860 - accuracy: 0.5515
 86/108 [======================>.......] - ETA: 12s - loss: 1.8802 - accuracy: 0.5523
 87/108 [=======================>......] - ETA: 11s - loss: 1.8741 - accuracy: 0.5531
 88/108 [=======================>......] - ETA: 11s - loss: 1.8685 - accuracy: 0.5539
 89/108 [=======================>......] - ETA: 10s - loss: 1.8631 - accuracy: 0.5546
 90/108 [========================>.....] - ETA: 10s - loss: 1.8574 - accuracy: 0.5553
 91/108 [========================>.....] - ETA: 9s - loss: 1.8519 - accuracy: 0.5561 
 92/108 [========================>.....] - ETA: 9s - loss: 1.8463 - accuracy: 0.5568
 93/108 [========================>.....] - ETA: 8s - loss: 1.8409 - accuracy: 0.5576
 94/108 [=========================>....] - ETA: 7s - loss: 1.8358 - accuracy: 0.5583
 95/108 [=========================>....] - ETA: 7s - loss: 1.8308 - accuracy: 0.5590
 96/108 [=========================>....] - ETA: 6s - loss: 1.8258 - accuracy: 0.5597
 97/108 [=========================>....] - ETA: 6s - loss: 1.8209 - accuracy: 0.5603
 98/108 [==========================>...] - ETA: 5s - loss: 1.8163 - accuracy: 0.5609
 99/108 [==========================>...] - ETA: 5s - loss: 1.8116 - accuracy: 0.5615
100/108 [==========================>...] - ETA: 4s - loss: 1.8068 - accuracy: 0.5622
101/108 [===========================>..] - ETA: 3s - loss: 1.8020 - accuracy: 0.5628
102/108 [===========================>..] - ETA: 3s - loss: 1.7972 - accuracy: 0.5635
103/108 [===========================>..] - ETA: 2s - loss: 1.7925 - accuracy: 0.5642
104/108 [===========================>..] - ETA: 2s - loss: 1.7880 - accuracy: 0.5648
105/108 [============================>.] - ETA: 1s - loss: 1.7833 - accuracy: 0.5655
106/108 [============================>.] - ETA: 1s - loss: 1.7791 - accuracy: 0.5661
107/108 [============================>.] - ETA: 0s - loss: 1.7745 - accuracy: 0.5667
108/108 [==============================] - 62s 566ms/step - loss: 1.7713 - accuracy: 0.5672

108/108 [==============================] - 67s 615ms/step - loss: 1.7713 - accuracy: 0.5672 - val_loss: 1.2585 - val_accuracy: 0.6358
Epoch 2/10

  1/108 [..............................] - ETA: 1:02 - loss: 1.3044 - accuracy: 0.6300
  2/108 [..............................] - ETA: 1:03 - loss: 1.3054 - accuracy: 0.6303
  3/108 [..............................] - ETA: 1:02 - loss: 1.3063 - accuracy: 0.6296
  4/108 [>.............................] - ETA: 1:01 - loss: 1.3061 - accuracy: 0.6296
  5/108 [>.............................] - ETA: 1:00 - loss: 1.3029 - accuracy: 0.6306
  6/108 [>.............................] - ETA: 1:00 - loss: 1.3016 - accuracy: 0.6315
  7/108 [>.............................] - ETA: 59s - loss: 1.3005 - accuracy: 0.6316 
  8/108 [=>............................] - ETA: 58s - loss: 1.2995 - accuracy: 0.6311
  9/108 [=>............................] - ETA: 58s - loss: 1.2988 - accuracy: 0.6313
 10/108 [=>............................] - ETA: 57s - loss: 1.2988 - accuracy: 0.6312
 11/108 [==>...........................] - ETA: 57s - loss: 1.2996 - accuracy: 0.6310
 12/108 [==>...........................] - ETA: 57s - loss: 1.2997 - accuracy: 0.6311
 13/108 [==>...........................] - ETA: 56s - loss: 1.3000 - accuracy: 0.6308
 14/108 [==>...........................] - ETA: 55s - loss: 1.2986 - accuracy: 0.6308
 15/108 [===>..........................] - ETA: 55s - loss: 1.2991 - accuracy: 0.6308
 16/108 [===>..........................] - ETA: 54s - loss: 1.2970 - accuracy: 0.6313
 17/108 [===>..........................] - ETA: 54s - loss: 1.2964 - accuracy: 0.6314
 18/108 [====>.........................] - ETA: 53s - loss: 1.2957 - accuracy: 0.6315
 19/108 [====>.........................] - ETA: 53s - loss: 1.2956 - accuracy: 0.6315
 20/108 [====>.........................] - ETA: 52s - loss: 1.2945 - accuracy: 0.6316
 21/108 [====>.........................] - ETA: 51s - loss: 1.2937 - accuracy: 0.6318
 22/108 [=====>........................] - ETA: 51s - loss: 1.2927 - accuracy: 0.6320
 23/108 [=====>........................] - ETA: 50s - loss: 1.2915 - accuracy: 0.6323
 24/108 [=====>........................] - ETA: 50s - loss: 1.2901 - accuracy: 0.6325
 25/108 [=====>........................] - ETA: 49s - loss: 1.2896 - accuracy: 0.6324
 26/108 [======>.......................] - ETA: 49s - loss: 1.2883 - accuracy: 0.6327
 27/108 [======>.......................] - ETA: 48s - loss: 1.2879 - accuracy: 0.6329
 28/108 [======>.......................] - ETA: 47s - loss: 1.2872 - accuracy: 0.6329
 29/108 [=======>......................] - ETA: 47s - loss: 1.2862 - accuracy: 0.6331
 30/108 [=======>......................] - ETA: 46s - loss: 1.2849 - accuracy: 0.6333
 31/108 [=======>......................] - ETA: 46s - loss: 1.2838 - accuracy: 0.6334
 32/108 [=======>......................] - ETA: 45s - loss: 1.2829 - accuracy: 0.6334
 33/108 [========>.....................] - ETA: 44s - loss: 1.2820 - accuracy: 0.6335
 34/108 [========>.....................] - ETA: 44s - loss: 1.2804 - accuracy: 0.6336
 35/108 [========>.....................] - ETA: 43s - loss: 1.2791 - accuracy: 0.6337
 36/108 [=========>....................] - ETA: 43s - loss: 1.2778 - accuracy: 0.6339
 37/108 [=========>....................] - ETA: 42s - loss: 1.2768 - accuracy: 0.6341
 38/108 [=========>....................] - ETA: 41s - loss: 1.2759 - accuracy: 0.6342
 39/108 [=========>....................] - ETA: 41s - loss: 1.2747 - accuracy: 0.6343
 40/108 [==========>...................] - ETA: 40s - loss: 1.2739 - accuracy: 0.6344
 41/108 [==========>...................] - ETA: 40s - loss: 1.2727 - accuracy: 0.6345
 42/108 [==========>...................] - ETA: 39s - loss: 1.2712 - accuracy: 0.6347
 43/108 [==========>...................] - ETA: 38s - loss: 1.2703 - accuracy: 0.6348
 44/108 [===========>..................] - ETA: 38s - loss: 1.2689 - accuracy: 0.6350
 45/108 [===========>..................] - ETA: 37s - loss: 1.2679 - accuracy: 0.6351
 46/108 [===========>..................] - ETA: 37s - loss: 1.2669 - accuracy: 0.6353
 47/108 [============>.................] - ETA: 36s - loss: 1.2658 - accuracy: 0.6356
 48/108 [============>.................] - ETA: 35s - loss: 1.2650 - accuracy: 0.6357
 49/108 [============>.................] - ETA: 35s - loss: 1.2642 - accuracy: 0.6358
 50/108 [============>.................] - ETA: 34s - loss: 1.2629 - accuracy: 0.6361
 51/108 [=============>................] - ETA: 34s - loss: 1.2619 - accuracy: 0.6363
 52/108 [=============>................] - ETA: 33s - loss: 1.2607 - accuracy: 0.6365
 53/108 [=============>................] - ETA: 32s - loss: 1.2595 - accuracy: 0.6368
 54/108 [==============>...............] - ETA: 32s - loss: 1.2579 - accuracy: 0.6372
 55/108 [==============>...............] - ETA: 31s - loss: 1.2571 - accuracy: 0.6374
 56/108 [==============>...............] - ETA: 31s - loss: 1.2566 - accuracy: 0.6375
 57/108 [==============>...............] - ETA: 30s - loss: 1.2560 - accuracy: 0.6375
 58/108 [===============>..............] - ETA: 29s - loss: 1.2551 - accuracy: 0.6377
 59/108 [===============>..............] - ETA: 29s - loss: 1.2541 - accuracy: 0.6378
 60/108 [===============>..............] - ETA: 28s - loss: 1.2535 - accuracy: 0.6379
 61/108 [===============>..............] - ETA: 28s - loss: 1.2529 - accuracy: 0.6380
 62/108 [================>.............] - ETA: 27s - loss: 1.2520 - accuracy: 0.6384
 63/108 [================>.............] - ETA: 26s - loss: 1.2512 - accuracy: 0.6385
 64/108 [================>.............] - ETA: 26s - loss: 1.2507 - accuracy: 0.6386
 65/108 [=================>............] - ETA: 25s - loss: 1.2500 - accuracy: 0.6386
 66/108 [=================>............] - ETA: 25s - loss: 1.2489 - accuracy: 0.6389
 67/108 [=================>............] - ETA: 24s - loss: 1.2484 - accuracy: 0.6389
 68/108 [=================>............] - ETA: 24s - loss: 1.2477 - accuracy: 0.6390
 69/108 [==================>...........] - ETA: 23s - loss: 1.2466 - accuracy: 0.6393
 70/108 [==================>...........] - ETA: 22s - loss: 1.2459 - accuracy: 0.6394
 71/108 [==================>...........] - ETA: 22s - loss: 1.2453 - accuracy: 0.6394
 72/108 [===================>..........] - ETA: 21s - loss: 1.2446 - accuracy: 0.6394
 73/108 [===================>..........] - ETA: 21s - loss: 1.2440 - accuracy: 0.6395
 74/108 [===================>..........] - ETA: 20s - loss: 1.2434 - accuracy: 0.6396
 75/108 [===================>..........] - ETA: 19s - loss: 1.2432 - accuracy: 0.6396
 76/108 [====================>.........] - ETA: 19s - loss: 1.2430 - accuracy: 0.6397
 77/108 [====================>.........] - ETA: 18s - loss: 1.2419 - accuracy: 0.6398
 78/108 [====================>.........] - ETA: 18s - loss: 1.2414 - accuracy: 0.6399
 79/108 [====================>.........] - ETA: 17s - loss: 1.2408 - accuracy: 0.6401
 80/108 [=====================>........] - ETA: 16s - loss: 1.2405 - accuracy: 0.6401
 81/108 [=====================>........] - ETA: 16s - loss: 1.2399 - accuracy: 0.6402
 82/108 [=====================>........] - ETA: 15s - loss: 1.2392 - accuracy: 0.6403
 83/108 [======================>.......] - ETA: 15s - loss: 1.2387 - accuracy: 0.6404
 84/108 [======================>.......] - ETA: 14s - loss: 1.2378 - accuracy: 0.6405
 85/108 [======================>.......] - ETA: 13s - loss: 1.2375 - accuracy: 0.6405
 86/108 [======================>.......] - ETA: 13s - loss: 1.2372 - accuracy: 0.6405
 87/108 [=======================>......] - ETA: 12s - loss: 1.2367 - accuracy: 0.6405
 88/108 [=======================>......] - ETA: 12s - loss: 1.2359 - accuracy: 0.6407
 89/108 [=======================>......] - ETA: 11s - loss: 1.2353 - accuracy: 0.6407
 90/108 [========================>.....] - ETA: 10s - loss: 1.2348 - accuracy: 0.6408
 91/108 [========================>.....] - ETA: 10s - loss: 1.2345 - accuracy: 0.6409
 92/108 [========================>.....] - ETA: 9s - loss: 1.2335 - accuracy: 0.6410 
 93/108 [========================>.....] - ETA: 9s - loss: 1.2328 - accuracy: 0.6411
 94/108 [=========================>....] - ETA: 8s - loss: 1.2319 - accuracy: 0.6413
 95/108 [=========================>....] - ETA: 7s - loss: 1.2312 - accuracy: 0.6414
 96/108 [=========================>....] - ETA: 7s - loss: 1.2306 - accuracy: 0.6414
 97/108 [=========================>....] - ETA: 6s - loss: 1.2299 - accuracy: 0.6415
 98/108 [==========================>...] - ETA: 6s - loss: 1.2290 - accuracy: 0.6416
 99/108 [==========================>...] - ETA: 5s - loss: 1.2285 - accuracy: 0.6417
100/108 [==========================>...] - ETA: 4s - loss: 1.2280 - accuracy: 0.6417
101/108 [===========================>..] - ETA: 4s - loss: 1.2275 - accuracy: 0.6417
102/108 [===========================>..] - ETA: 3s - loss: 1.2270 - accuracy: 0.6418
103/108 [===========================>..] - ETA: 3s - loss: 1.2264 - accuracy: 0.6418
104/108 [===========================>..] - ETA: 2s - loss: 1.2257 - accuracy: 0.6419
105/108 [============================>.] - ETA: 1s - loss: 1.2249 - accuracy: 0.6420
106/108 [============================>.] - ETA: 1s - loss: 1.2244 - accuracy: 0.6421
107/108 [============================>.] - ETA: 0s - loss: 1.2238 - accuracy: 0.6422
108/108 [==============================] - 65s 604ms/step - loss: 1.2232 - accuracy: 0.6423

108/108 [==============================] - 70s 649ms/step - loss: 1.2232 - accuracy: 0.6423 - val_loss: 1.1022 - val_accuracy: 0.6666
Epoch 3/10

  1/108 [..............................] - ETA: 1:03 - loss: 1.1497 - accuracy: 0.6558
  2/108 [..............................] - ETA: 1:03 - loss: 1.1565 - accuracy: 0.6531
  3/108 [..............................] - ETA: 1:05 - loss: 1.1523 - accuracy: 0.6549
  4/108 [>.............................] - ETA: 1:03 - loss: 1.1462 - accuracy: 0.6563
  5/108 [>.............................] - ETA: 1:02 - loss: 1.1458 - accuracy: 0.6560
  6/108 [>.............................] - ETA: 1:01 - loss: 1.1466 - accuracy: 0.6543
  7/108 [>.............................] - ETA: 1:01 - loss: 1.1464 - accuracy: 0.6542
  8/108 [=>............................] - ETA: 1:00 - loss: 1.1439 - accuracy: 0.6540
  9/108 [=>............................] - ETA: 59s - loss: 1.1425 - accuracy: 0.6538 
 10/108 [=>............................] - ETA: 59s - loss: 1.1435 - accuracy: 0.6535
 11/108 [==>...........................] - ETA: 58s - loss: 1.1419 - accuracy: 0.6539
 12/108 [==>...........................] - ETA: 58s - loss: 1.1426 - accuracy: 0.6537
 13/108 [==>...........................] - ETA: 57s - loss: 1.1424 - accuracy: 0.6540
 14/108 [==>...........................] - ETA: 56s - loss: 1.1391 - accuracy: 0.6547
 15/108 [===>..........................] - ETA: 56s - loss: 1.1354 - accuracy: 0.6554
 16/108 [===>..........................] - ETA: 55s - loss: 1.1356 - accuracy: 0.6558
 17/108 [===>..........................] - ETA: 55s - loss: 1.1361 - accuracy: 0.6556
 18/108 [====>.........................] - ETA: 54s - loss: 1.1347 - accuracy: 0.6558
 19/108 [====>.........................] - ETA: 53s - loss: 1.1324 - accuracy: 0.6562
 20/108 [====>.........................] - ETA: 53s - loss: 1.1313 - accuracy: 0.6564
 21/108 [====>.........................] - ETA: 53s - loss: 1.1312 - accuracy: 0.6564
 22/108 [=====>........................] - ETA: 52s - loss: 1.1302 - accuracy: 0.6565
 23/108 [=====>........................] - ETA: 52s - loss: 1.1319 - accuracy: 0.6560
 24/108 [=====>........................] - ETA: 51s - loss: 1.1322 - accuracy: 0.6558
 25/108 [=====>........................] - ETA: 51s - loss: 1.1320 - accuracy: 0.6560
 26/108 [======>.......................] - ETA: 50s - loss: 1.1306 - accuracy: 0.6564
 27/108 [======>.......................] - ETA: 49s - loss: 1.1290 - accuracy: 0.6568
 28/108 [======>.......................] - ETA: 49s - loss: 1.1282 - accuracy: 0.6572
 29/108 [=======>......................] - ETA: 48s - loss: 1.1277 - accuracy: 0.6573
 30/108 [=======>......................] - ETA: 48s - loss: 1.1281 - accuracy: 0.6570
 31/108 [=======>......................] - ETA: 47s - loss: 1.1276 - accuracy: 0.6571
 32/108 [=======>......................] - ETA: 46s - loss: 1.1277 - accuracy: 0.6571
 33/108 [========>.....................] - ETA: 46s - loss: 1.1283 - accuracy: 0.6569
 34/108 [========>.....................] - ETA: 45s - loss: 1.1282 - accuracy: 0.6569
 35/108 [========>.....................] - ETA: 44s - loss: 1.1279 - accuracy: 0.6569
 36/108 [=========>....................] - ETA: 44s - loss: 1.1274 - accuracy: 0.6572
 37/108 [=========>....................] - ETA: 43s - loss: 1.1277 - accuracy: 0.6569
 38/108 [=========>....................] - ETA: 43s - loss: 1.1278 - accuracy: 0.6568
 39/108 [=========>....................] - ETA: 42s - loss: 1.1279 - accuracy: 0.6567
 40/108 [==========>...................] - ETA: 41s - loss: 1.1281 - accuracy: 0.6567
 41/108 [==========>...................] - ETA: 41s - loss: 1.1275 - accuracy: 0.6570
 42/108 [==========>...................] - ETA: 40s - loss: 1.1276 - accuracy: 0.6569
 43/108 [==========>...................] - ETA: 39s - loss: 1.1280 - accuracy: 0.6567
 44/108 [===========>..................] - ETA: 39s - loss: 1.1278 - accuracy: 0.6568
 45/108 [===========>..................] - ETA: 38s - loss: 1.1273 - accuracy: 0.6570
 46/108 [===========>..................] - ETA: 37s - loss: 1.1270 - accuracy: 0.6571
 47/108 [============>.................] - ETA: 37s - loss: 1.1263 - accuracy: 0.6572
 48/108 [============>.................] - ETA: 36s - loss: 1.1258 - accuracy: 0.6574
 49/108 [============>.................] - ETA: 36s - loss: 1.1259 - accuracy: 0.6573
 50/108 [============>.................] - ETA: 35s - loss: 1.1256 - accuracy: 0.6573
 51/108 [=============>................] - ETA: 34s - loss: 1.1248 - accuracy: 0.6575
 52/108 [=============>................] - ETA: 34s - loss: 1.1246 - accuracy: 0.6575
 53/108 [=============>................] - ETA: 33s - loss: 1.1243 - accuracy: 0.6575
 54/108 [==============>...............] - ETA: 33s - loss: 1.1242 - accuracy: 0.6574
 55/108 [==============>...............] - ETA: 32s - loss: 1.1236 - accuracy: 0.6575
 56/108 [==============>...............] - ETA: 31s - loss: 1.1228 - accuracy: 0.6577
 57/108 [==============>...............] - ETA: 31s - loss: 1.1221 - accuracy: 0.6578
 58/108 [===============>..............] - ETA: 30s - loss: 1.1219 - accuracy: 0.6579
 59/108 [===============>..............] - ETA: 29s - loss: 1.1218 - accuracy: 0.6578
 60/108 [===============>..............] - ETA: 29s - loss: 1.1210 - accuracy: 0.6580
 61/108 [===============>..............] - ETA: 28s - loss: 1.1210 - accuracy: 0.6581
 62/108 [================>.............] - ETA: 28s - loss: 1.1205 - accuracy: 0.6582
 63/108 [================>.............] - ETA: 27s - loss: 1.1203 - accuracy: 0.6583
 64/108 [================>.............] - ETA: 26s - loss: 1.1205 - accuracy: 0.6583
 65/108 [=================>............] - ETA: 26s - loss: 1.1200 - accuracy: 0.6584
 66/108 [=================>............] - ETA: 25s - loss: 1.1198 - accuracy: 0.6586
 67/108 [=================>............] - ETA: 25s - loss: 1.1197 - accuracy: 0.6586
 68/108 [=================>............] - ETA: 24s - loss: 1.1194 - accuracy: 0.6586
 69/108 [==================>...........] - ETA: 23s - loss: 1.1192 - accuracy: 0.6585
 70/108 [==================>...........] - ETA: 23s - loss: 1.1187 - accuracy: 0.6586
 71/108 [==================>...........] - ETA: 22s - loss: 1.1183 - accuracy: 0.6587
 72/108 [===================>..........] - ETA: 21s - loss: 1.1178 - accuracy: 0.6587
 73/108 [===================>..........] - ETA: 21s - loss: 1.1175 - accuracy: 0.6588
 74/108 [===================>..........] - ETA: 20s - loss: 1.1168 - accuracy: 0.6590
 75/108 [===================>..........] - ETA: 20s - loss: 1.1167 - accuracy: 0.6590
 76/108 [====================>.........] - ETA: 19s - loss: 1.1159 - accuracy: 0.6591
 77/108 [====================>.........] - ETA: 18s - loss: 1.1151 - accuracy: 0.6593
 78/108 [====================>.........] - ETA: 18s - loss: 1.1147 - accuracy: 0.6594
 79/108 [====================>.........] - ETA: 17s - loss: 1.1143 - accuracy: 0.6595
 80/108 [=====================>........] - ETA: 17s - loss: 1.1138 - accuracy: 0.6596
 81/108 [=====================>........] - ETA: 16s - loss: 1.1135 - accuracy: 0.6597
 82/108 [=====================>........] - ETA: 15s - loss: 1.1133 - accuracy: 0.6598
 83/108 [======================>.......] - ETA: 15s - loss: 1.1128 - accuracy: 0.6598
 84/108 [======================>.......] - ETA: 14s - loss: 1.1126 - accuracy: 0.6598
 85/108 [======================>.......] - ETA: 14s - loss: 1.1122 - accuracy: 0.6599
 86/108 [======================>.......] - ETA: 13s - loss: 1.1115 - accuracy: 0.6600
 87/108 [=======================>......] - ETA: 12s - loss: 1.1115 - accuracy: 0.6600
 88/108 [=======================>......] - ETA: 12s - loss: 1.1115 - accuracy: 0.6599
 89/108 [=======================>......] - ETA: 11s - loss: 1.1110 - accuracy: 0.6600
 90/108 [========================>.....] - ETA: 10s - loss: 1.1107 - accuracy: 0.6600
 91/108 [========================>.....] - ETA: 10s - loss: 1.1105 - accuracy: 0.6600
 92/108 [========================>.....] - ETA: 9s - loss: 1.1100 - accuracy: 0.6602 
 93/108 [========================>.....] - ETA: 9s - loss: 1.1098 - accuracy: 0.6602
 94/108 [=========================>....] - ETA: 8s - loss: 1.1091 - accuracy: 0.6603
 95/108 [=========================>....] - ETA: 7s - loss: 1.1085 - accuracy: 0.6603
 96/108 [=========================>....] - ETA: 7s - loss: 1.1079 - accuracy: 0.6605
 97/108 [=========================>....] - ETA: 6s - loss: 1.1076 - accuracy: 0.6605
 98/108 [==========================>...] - ETA: 6s - loss: 1.1070 - accuracy: 0.6606
 99/108 [==========================>...] - ETA: 5s - loss: 1.1064 - accuracy: 0.6608
100/108 [==========================>...] - ETA: 4s - loss: 1.1062 - accuracy: 0.6608
101/108 [===========================>..] - ETA: 4s - loss: 1.1059 - accuracy: 0.6608
102/108 [===========================>..] - ETA: 3s - loss: 1.1059 - accuracy: 0.6607
103/108 [===========================>..] - ETA: 3s - loss: 1.1058 - accuracy: 0.6607
104/108 [===========================>..] - ETA: 2s - loss: 1.1056 - accuracy: 0.6607
105/108 [============================>.] - ETA: 1s - loss: 1.1050 - accuracy: 0.6607
106/108 [============================>.] - ETA: 1s - loss: 1.1047 - accuracy: 0.6607
107/108 [============================>.] - ETA: 0s - loss: 1.1044 - accuracy: 0.6607
108/108 [==============================] - 66s 608ms/step - loss: 1.1041 - accuracy: 0.6608

108/108 [==============================] - 70s 653ms/step - loss: 1.1041 - accuracy: 0.6608 - val_loss: 1.0046 - val_accuracy: 0.6781
Epoch 4/10

  1/108 [..............................] - ETA: 1:03 - loss: 1.0844 - accuracy: 0.6589
  2/108 [..............................] - ETA: 1:07 - loss: 1.0729 - accuracy: 0.6628
  3/108 [..............................] - ETA: 1:04 - loss: 1.0618 - accuracy: 0.6650
  4/108 [>.............................] - ETA: 1:03 - loss: 1.0576 - accuracy: 0.6652
  5/108 [>.............................] - ETA: 1:03 - loss: 1.0580 - accuracy: 0.6657
  6/108 [>.............................] - ETA: 1:02 - loss: 1.0608 - accuracy: 0.6655
  7/108 [>.............................] - ETA: 1:01 - loss: 1.0632 - accuracy: 0.6652
  8/108 [=>............................] - ETA: 1:00 - loss: 1.0659 - accuracy: 0.6645
  9/108 [=>............................] - ETA: 1:00 - loss: 1.0661 - accuracy: 0.6647
 10/108 [=>............................] - ETA: 59s - loss: 1.0650 - accuracy: 0.6652 
 11/108 [==>...........................] - ETA: 58s - loss: 1.0617 - accuracy: 0.6660
 12/108 [==>...........................] - ETA: 58s - loss: 1.0602 - accuracy: 0.6664
 13/108 [==>...........................] - ETA: 57s - loss: 1.0606 - accuracy: 0.6663
 14/108 [==>...........................] - ETA: 57s - loss: 1.0579 - accuracy: 0.6670
 15/108 [===>..........................] - ETA: 56s - loss: 1.0588 - accuracy: 0.6671
 16/108 [===>..........................] - ETA: 55s - loss: 1.0563 - accuracy: 0.6678
 17/108 [===>..........................] - ETA: 55s - loss: 1.0569 - accuracy: 0.6675
 18/108 [====>.........................] - ETA: 54s - loss: 1.0559 - accuracy: 0.6676
 19/108 [====>.........................] - ETA: 53s - loss: 1.0560 - accuracy: 0.6675
 20/108 [====>.........................] - ETA: 53s - loss: 1.0575 - accuracy: 0.6671
 21/108 [====>.........................] - ETA: 52s - loss: 1.0570 - accuracy: 0.6674
 22/108 [=====>........................] - ETA: 52s - loss: 1.0572 - accuracy: 0.6674
 23/108 [=====>........................] - ETA: 51s - loss: 1.0568 - accuracy: 0.6674
 24/108 [=====>........................] - ETA: 50s - loss: 1.0574 - accuracy: 0.6671
 25/108 [=====>........................] - ETA: 50s - loss: 1.0576 - accuracy: 0.6672
 26/108 [======>.......................] - ETA: 49s - loss: 1.0565 - accuracy: 0.6674
 27/108 [======>.......................] - ETA: 49s - loss: 1.0571 - accuracy: 0.6672
 28/108 [======>.......................] - ETA: 48s - loss: 1.0564 - accuracy: 0.6674
 29/108 [=======>......................] - ETA: 47s - loss: 1.0572 - accuracy: 0.6674
 30/108 [=======>......................] - ETA: 47s - loss: 1.0556 - accuracy: 0.6677
 31/108 [=======>......................] - ETA: 46s - loss: 1.0555 - accuracy: 0.6678
 32/108 [=======>......................] - ETA: 46s - loss: 1.0544 - accuracy: 0.6680
 33/108 [========>.....................] - ETA: 45s - loss: 1.0540 - accuracy: 0.6681
 34/108 [========>.....................] - ETA: 44s - loss: 1.0538 - accuracy: 0.6681
 35/108 [========>.....................] - ETA: 44s - loss: 1.0539 - accuracy: 0.6680
 36/108 [=========>....................] - ETA: 43s - loss: 1.0535 - accuracy: 0.6682
 37/108 [=========>....................] - ETA: 43s - loss: 1.0537 - accuracy: 0.6682
 38/108 [=========>....................] - ETA: 42s - loss: 1.0535 - accuracy: 0.6683
 39/108 [=========>....................] - ETA: 41s - loss: 1.0531 - accuracy: 0.6684
 40/108 [==========>...................] - ETA: 41s - loss: 1.0524 - accuracy: 0.6684
 41/108 [==========>...................] - ETA: 40s - loss: 1.0519 - accuracy: 0.6685
 42/108 [==========>...................] - ETA: 40s - loss: 1.0512 - accuracy: 0.6687
 43/108 [==========>...................] - ETA: 39s - loss: 1.0506 - accuracy: 0.6687
 44/108 [===========>..................] - ETA: 38s - loss: 1.0501 - accuracy: 0.6688
 45/108 [===========>..................] - ETA: 38s - loss: 1.0494 - accuracy: 0.6690
 46/108 [===========>..................] - ETA: 37s - loss: 1.0485 - accuracy: 0.6693
 47/108 [============>.................] - ETA: 37s - loss: 1.0486 - accuracy: 0.6693
 48/108 [============>.................] - ETA: 36s - loss: 1.0486 - accuracy: 0.6692
 49/108 [============>.................] - ETA: 35s - loss: 1.0481 - accuracy: 0.6695
 50/108 [============>.................] - ETA: 35s - loss: 1.0484 - accuracy: 0.6695
 51/108 [=============>................] - ETA: 34s - loss: 1.0476 - accuracy: 0.6697
 52/108 [=============>................] - ETA: 33s - loss: 1.0476 - accuracy: 0.6698
 53/108 [=============>................] - ETA: 33s - loss: 1.0471 - accuracy: 0.6699
 54/108 [==============>...............] - ETA: 32s - loss: 1.0469 - accuracy: 0.6699
 55/108 [==============>...............] - ETA: 32s - loss: 1.0468 - accuracy: 0.6699
 56/108 [==============>...............] - ETA: 31s - loss: 1.0470 - accuracy: 0.6699
 57/108 [==============>...............] - ETA: 30s - loss: 1.0468 - accuracy: 0.6699
 58/108 [===============>..............] - ETA: 30s - loss: 1.0468 - accuracy: 0.6698
 59/108 [===============>..............] - ETA: 29s - loss: 1.0464 - accuracy: 0.6700
 60/108 [===============>..............] - ETA: 29s - loss: 1.0464 - accuracy: 0.6699
 61/108 [===============>..............] - ETA: 28s - loss: 1.0464 - accuracy: 0.6698
 62/108 [================>.............] - ETA: 27s - loss: 1.0464 - accuracy: 0.6698
 63/108 [================>.............] - ETA: 27s - loss: 1.0462 - accuracy: 0.6698
 64/108 [================>.............] - ETA: 26s - loss: 1.0460 - accuracy: 0.6698
 65/108 [=================>............] - ETA: 26s - loss: 1.0459 - accuracy: 0.6698
 66/108 [=================>............] - ETA: 25s - loss: 1.0453 - accuracy: 0.6699
 67/108 [=================>............] - ETA: 24s - loss: 1.0449 - accuracy: 0.6700
 68/108 [=================>............] - ETA: 24s - loss: 1.0445 - accuracy: 0.6701
 69/108 [==================>...........] - ETA: 23s - loss: 1.0442 - accuracy: 0.6701
 70/108 [==================>...........] - ETA: 23s - loss: 1.0440 - accuracy: 0.6702
 71/108 [==================>...........] - ETA: 22s - loss: 1.0439 - accuracy: 0.6702
 72/108 [===================>..........] - ETA: 21s - loss: 1.0433 - accuracy: 0.6702
 73/108 [===================>..........] - ETA: 21s - loss: 1.0430 - accuracy: 0.6704
 74/108 [===================>..........] - ETA: 20s - loss: 1.0431 - accuracy: 0.6703
 75/108 [===================>..........] - ETA: 20s - loss: 1.0430 - accuracy: 0.6704
 76/108 [====================>.........] - ETA: 19s - loss: 1.0424 - accuracy: 0.6705
 77/108 [====================>.........] - ETA: 18s - loss: 1.0427 - accuracy: 0.6705
 78/108 [====================>.........] - ETA: 18s - loss: 1.0427 - accuracy: 0.6704
 79/108 [====================>.........] - ETA: 17s - loss: 1.0425 - accuracy: 0.6705
 80/108 [=====================>........] - ETA: 17s - loss: 1.0424 - accuracy: 0.6705
 81/108 [=====================>........] - ETA: 16s - loss: 1.0420 - accuracy: 0.6705
 82/108 [=====================>........] - ETA: 15s - loss: 1.0421 - accuracy: 0.6704
 83/108 [======================>.......] - ETA: 15s - loss: 1.0420 - accuracy: 0.6704
 84/108 [======================>.......] - ETA: 14s - loss: 1.0416 - accuracy: 0.6705
 85/108 [======================>.......] - ETA: 13s - loss: 1.0413 - accuracy: 0.6705
 86/108 [======================>.......] - ETA: 13s - loss: 1.0413 - accuracy: 0.6705
 87/108 [=======================>......] - ETA: 12s - loss: 1.0412 - accuracy: 0.6705
 88/108 [=======================>......] - ETA: 12s - loss: 1.0408 - accuracy: 0.6706
 89/108 [=======================>......] - ETA: 11s - loss: 1.0406 - accuracy: 0.6706
 90/108 [========================>.....] - ETA: 10s - loss: 1.0403 - accuracy: 0.6706
 91/108 [========================>.....] - ETA: 10s - loss: 1.0402 - accuracy: 0.6706
 92/108 [========================>.....] - ETA: 9s - loss: 1.0400 - accuracy: 0.6706 
 93/108 [========================>.....] - ETA: 9s - loss: 1.0398 - accuracy: 0.6706
 94/108 [=========================>....] - ETA: 8s - loss: 1.0395 - accuracy: 0.6707
 95/108 [=========================>....] - ETA: 7s - loss: 1.0394 - accuracy: 0.6707
 96/108 [=========================>....] - ETA: 7s - loss: 1.0392 - accuracy: 0.6708
 97/108 [=========================>....] - ETA: 6s - loss: 1.0393 - accuracy: 0.6707
 98/108 [==========================>...] - ETA: 6s - loss: 1.0392 - accuracy: 0.6706
 99/108 [==========================>...] - ETA: 5s - loss: 1.0387 - accuracy: 0.6707
100/108 [==========================>...] - ETA: 4s - loss: 1.0384 - accuracy: 0.6708
101/108 [===========================>..] - ETA: 4s - loss: 1.0383 - accuracy: 0.6708
102/108 [===========================>..] - ETA: 3s - loss: 1.0382 - accuracy: 0.6708
103/108 [===========================>..] - ETA: 3s - loss: 1.0380 - accuracy: 0.6708
104/108 [===========================>..] - ETA: 2s - loss: 1.0378 - accuracy: 0.6709
105/108 [============================>.] - ETA: 1s - loss: 1.0376 - accuracy: 0.6709
106/108 [============================>.] - ETA: 1s - loss: 1.0374 - accuracy: 0.6709
107/108 [============================>.] - ETA: 0s - loss: 1.0369 - accuracy: 0.6710
108/108 [==============================] - 66s 607ms/step - loss: 1.0366 - accuracy: 0.6710

108/108 [==============================] - 70s 653ms/step - loss: 1.0366 - accuracy: 0.6710 - val_loss: 0.9434 - val_accuracy: 0.6911
Epoch 5/10

  1/108 [..............................] - ETA: 1:04 - loss: 0.9803 - accuracy: 0.6865
  2/108 [..............................] - ETA: 1:05 - loss: 0.9910 - accuracy: 0.6822
  3/108 [..............................] - ETA: 1:04 - loss: 0.9947 - accuracy: 0.6804
  4/108 [>.............................] - ETA: 1:03 - loss: 0.9975 - accuracy: 0.6785
  5/108 [>.............................] - ETA: 1:02 - loss: 0.9998 - accuracy: 0.6769
  6/108 [>.............................] - ETA: 1:01 - loss: 1.0023 - accuracy: 0.6762
  7/108 [>.............................] - ETA: 1:00 - loss: 1.0038 - accuracy: 0.6757
  8/108 [=>............................] - ETA: 1:00 - loss: 1.0138 - accuracy: 0.6742
  9/108 [=>............................] - ETA: 1:00 - loss: 1.0136 - accuracy: 0.6736
 10/108 [=>............................] - ETA: 59s - loss: 1.0152 - accuracy: 0.6733 
 11/108 [==>...........................] - ETA: 58s - loss: 1.0166 - accuracy: 0.6730
 12/108 [==>...........................] - ETA: 58s - loss: 1.0159 - accuracy: 0.6730
 13/108 [==>...........................] - ETA: 57s - loss: 1.0170 - accuracy: 0.6724
 14/108 [==>...........................] - ETA: 57s - loss: 1.0193 - accuracy: 0.6721
 15/108 [===>..........................] - ETA: 56s - loss: 1.0198 - accuracy: 0.6721
 16/108 [===>..........................] - ETA: 55s - loss: 1.0183 - accuracy: 0.6728
 17/108 [===>..........................] - ETA: 55s - loss: 1.0194 - accuracy: 0.6727
 18/108 [====>.........................] - ETA: 54s - loss: 1.0190 - accuracy: 0.6728
 19/108 [====>.........................] - ETA: 54s - loss: 1.0195 - accuracy: 0.6729
 20/108 [====>.........................] - ETA: 53s - loss: 1.0196 - accuracy: 0.6731
 21/108 [====>.........................] - ETA: 52s - loss: 1.0183 - accuracy: 0.6737
 22/108 [=====>........................] - ETA: 52s - loss: 1.0161 - accuracy: 0.6744
 23/108 [=====>........................] - ETA: 51s - loss: 1.0153 - accuracy: 0.6746
 24/108 [=====>........................] - ETA: 51s - loss: 1.0153 - accuracy: 0.6744
 25/108 [=====>........................] - ETA: 50s - loss: 1.0152 - accuracy: 0.6742
 26/108 [======>.......................] - ETA: 49s - loss: 1.0141 - accuracy: 0.6745
 27/108 [======>.......................] - ETA: 49s - loss: 1.0142 - accuracy: 0.6746
 28/108 [======>.......................] - ETA: 48s - loss: 1.0157 - accuracy: 0.6742
 29/108 [=======>......................] - ETA: 48s - loss: 1.0158 - accuracy: 0.6742
 30/108 [=======>......................] - ETA: 47s - loss: 1.0150 - accuracy: 0.6744
 31/108 [=======>......................] - ETA: 46s - loss: 1.0153 - accuracy: 0.6743
 32/108 [=======>......................] - ETA: 46s - loss: 1.0152 - accuracy: 0.6743
 33/108 [========>.....................] - ETA: 45s - loss: 1.0143 - accuracy: 0.6743
 34/108 [========>.....................] - ETA: 45s - loss: 1.0135 - accuracy: 0.6744
 35/108 [========>.....................] - ETA: 44s - loss: 1.0142 - accuracy: 0.6742
 36/108 [=========>....................] - ETA: 43s - loss: 1.0139 - accuracy: 0.6741
 37/108 [=========>....................] - ETA: 43s - loss: 1.0128 - accuracy: 0.6745
 38/108 [=========>....................] - ETA: 42s - loss: 1.0126 - accuracy: 0.6746
 39/108 [=========>....................] - ETA: 42s - loss: 1.0126 - accuracy: 0.6746
 40/108 [==========>...................] - ETA: 41s - loss: 1.0122 - accuracy: 0.6746
 41/108 [==========>...................] - ETA: 40s - loss: 1.0115 - accuracy: 0.6748
 42/108 [==========>...................] - ETA: 40s - loss: 1.0111 - accuracy: 0.6749
 43/108 [==========>...................] - ETA: 39s - loss: 1.0110 - accuracy: 0.6750
 44/108 [===========>..................] - ETA: 39s - loss: 1.0104 - accuracy: 0.6751
 45/108 [===========>..................] - ETA: 38s - loss: 1.0097 - accuracy: 0.6752
 46/108 [===========>..................] - ETA: 37s - loss: 1.0092 - accuracy: 0.6753
 47/108 [============>.................] - ETA: 37s - loss: 1.0079 - accuracy: 0.6756
 48/108 [============>.................] - ETA: 36s - loss: 1.0073 - accuracy: 0.6757
 49/108 [============>.................] - ETA: 36s - loss: 1.0071 - accuracy: 0.6758
 50/108 [============>.................] - ETA: 35s - loss: 1.0064 - accuracy: 0.6759
 51/108 [=============>................] - ETA: 34s - loss: 1.0058 - accuracy: 0.6760
 52/108 [=============>................] - ETA: 34s - loss: 1.0055 - accuracy: 0.6760
 53/108 [=============>................] - ETA: 33s - loss: 1.0050 - accuracy: 0.6761
 54/108 [==============>...............] - ETA: 33s - loss: 1.0044 - accuracy: 0.6760
 55/108 [==============>...............] - ETA: 32s - loss: 1.0036 - accuracy: 0.6762
 56/108 [==============>...............] - ETA: 31s - loss: 1.0034 - accuracy: 0.6762
 57/108 [==============>...............] - ETA: 31s - loss: 1.0033 - accuracy: 0.6763
 58/108 [===============>..............] - ETA: 30s - loss: 1.0032 - accuracy: 0.6762
 59/108 [===============>..............] - ETA: 30s - loss: 1.0029 - accuracy: 0.6763
 60/108 [===============>..............] - ETA: 29s - loss: 1.0023 - accuracy: 0.6764
 61/108 [===============>..............] - ETA: 29s - loss: 1.0020 - accuracy: 0.6764
 62/108 [================>.............] - ETA: 28s - loss: 1.0019 - accuracy: 0.6765
 63/108 [================>.............] - ETA: 27s - loss: 1.0019 - accuracy: 0.6766
 64/108 [================>.............] - ETA: 27s - loss: 1.0010 - accuracy: 0.6768
 65/108 [=================>............] - ETA: 26s - loss: 1.0006 - accuracy: 0.6768
 66/108 [=================>............] - ETA: 26s - loss: 1.0006 - accuracy: 0.6768
 67/108 [=================>............] - ETA: 25s - loss: 0.9999 - accuracy: 0.6770
 68/108 [=================>............] - ETA: 24s - loss: 0.9999 - accuracy: 0.6770
 69/108 [==================>...........] - ETA: 24s - loss: 0.9996 - accuracy: 0.6771
 70/108 [==================>...........] - ETA: 23s - loss: 0.9991 - accuracy: 0.6772
 71/108 [==================>...........] - ETA: 23s - loss: 0.9993 - accuracy: 0.6772
 72/108 [===================>..........] - ETA: 22s - loss: 0.9991 - accuracy: 0.6772
 73/108 [===================>..........] - ETA: 21s - loss: 0.9990 - accuracy: 0.6772
 74/108 [===================>..........] - ETA: 21s - loss: 0.9987 - accuracy: 0.6773
 75/108 [===================>..........] - ETA: 20s - loss: 0.9994 - accuracy: 0.6772
 76/108 [====================>.........] - ETA: 20s - loss: 1.0000 - accuracy: 0.6770
 77/108 [====================>.........] - ETA: 19s - loss: 1.0000 - accuracy: 0.6769
 78/108 [====================>.........] - ETA: 18s - loss: 1.0002 - accuracy: 0.6768
 79/108 [====================>.........] - ETA: 18s - loss: 1.0004 - accuracy: 0.6767
 80/108 [=====================>........] - ETA: 17s - loss: 1.0005 - accuracy: 0.6767
 81/108 [=====================>........] - ETA: 16s - loss: 1.0006 - accuracy: 0.6767
 82/108 [=====================>........] - ETA: 16s - loss: 1.0009 - accuracy: 0.6765
 83/108 [======================>.......] - ETA: 15s - loss: 1.0012 - accuracy: 0.6764
 84/108 [======================>.......] - ETA: 15s - loss: 1.0014 - accuracy: 0.6764
 85/108 [======================>.......] - ETA: 14s - loss: 1.0014 - accuracy: 0.6763
 86/108 [======================>.......] - ETA: 13s - loss: 1.0013 - accuracy: 0.6762
 87/108 [=======================>......] - ETA: 13s - loss: 1.0012 - accuracy: 0.6763
 88/108 [=======================>......] - ETA: 12s - loss: 1.0012 - accuracy: 0.6763
 89/108 [=======================>......] - ETA: 11s - loss: 1.0015 - accuracy: 0.6762
 90/108 [========================>.....] - ETA: 11s - loss: 1.0016 - accuracy: 0.6762
 91/108 [========================>.....] - ETA: 10s - loss: 1.0013 - accuracy: 0.6763
 92/108 [========================>.....] - ETA: 10s - loss: 1.0010 - accuracy: 0.6764
 93/108 [========================>.....] - ETA: 9s - loss: 1.0009 - accuracy: 0.6764 
 94/108 [=========================>....] - ETA: 8s - loss: 1.0005 - accuracy: 0.6766
 95/108 [=========================>....] - ETA: 8s - loss: 1.0006 - accuracy: 0.6765
 96/108 [=========================>....] - ETA: 7s - loss: 1.0004 - accuracy: 0.6766
 97/108 [=========================>....] - ETA: 6s - loss: 1.0003 - accuracy: 0.6766
 98/108 [==========================>...] - ETA: 6s - loss: 1.0002 - accuracy: 0.6767
 99/108 [==========================>...] - ETA: 5s - loss: 1.0002 - accuracy: 0.6767
100/108 [==========================>...] - ETA: 5s - loss: 1.0003 - accuracy: 0.6767
101/108 [===========================>..] - ETA: 4s - loss: 1.0002 - accuracy: 0.6767
102/108 [===========================>..] - ETA: 3s - loss: 1.0001 - accuracy: 0.6767
103/108 [===========================>..] - ETA: 3s - loss: 1.0002 - accuracy: 0.6767
104/108 [===========================>..] - ETA: 2s - loss: 1.0001 - accuracy: 0.6767
105/108 [============================>.] - ETA: 1s - loss: 0.9999 - accuracy: 0.6768
106/108 [============================>.] - ETA: 1s - loss: 0.9998 - accuracy: 0.6768
107/108 [============================>.] - ETA: 0s - loss: 0.9999 - accuracy: 0.6769
108/108 [==============================] - 67s 625ms/step - loss: 0.9995 - accuracy: 0.6770

108/108 [==============================] - 72s 670ms/step - loss: 0.9995 - accuracy: 0.6770 - val_loss: 0.9169 - val_accuracy: 0.6930
Epoch 6/10

  1/108 [..............................] - ETA: 1:04 - loss: 1.0074 - accuracy: 0.6734
  2/108 [..............................] - ETA: 1:06 - loss: 1.0026 - accuracy: 0.6758
  3/108 [..............................] - ETA: 1:04 - loss: 0.9875 - accuracy: 0.6798
  4/108 [>.............................] - ETA: 1:03 - loss: 0.9876 - accuracy: 0.6790
  5/108 [>.............................] - ETA: 1:02 - loss: 0.9862 - accuracy: 0.6804
  6/108 [>.............................] - ETA: 1:02 - loss: 0.9829 - accuracy: 0.6803
  7/108 [>.............................] - ETA: 1:01 - loss: 0.9840 - accuracy: 0.6798
  8/108 [=>............................] - ETA: 1:01 - loss: 0.9801 - accuracy: 0.6807
  9/108 [=>............................] - ETA: 1:00 - loss: 0.9785 - accuracy: 0.6814
 10/108 [=>............................] - ETA: 59s - loss: 0.9793 - accuracy: 0.6805 
 11/108 [==>...........................] - ETA: 59s - loss: 0.9796 - accuracy: 0.6803
 12/108 [==>...........................] - ETA: 58s - loss: 0.9769 - accuracy: 0.6811
 13/108 [==>...........................] - ETA: 58s - loss: 0.9767 - accuracy: 0.6811
 14/108 [==>...........................] - ETA: 57s - loss: 0.9761 - accuracy: 0.6813
 15/108 [===>..........................] - ETA: 56s - loss: 0.9776 - accuracy: 0.6804
 16/108 [===>..........................] - ETA: 56s - loss: 0.9757 - accuracy: 0.6810
 17/108 [===>..........................] - ETA: 55s - loss: 0.9744 - accuracy: 0.6812
 18/108 [====>.........................] - ETA: 55s - loss: 0.9734 - accuracy: 0.6816
 19/108 [====>.........................] - ETA: 54s - loss: 0.9728 - accuracy: 0.6818
 20/108 [====>.........................] - ETA: 53s - loss: 0.9722 - accuracy: 0.6821
 21/108 [====>.........................] - ETA: 53s - loss: 0.9709 - accuracy: 0.6825
 22/108 [=====>........................] - ETA: 52s - loss: 0.9716 - accuracy: 0.6824
 23/108 [=====>........................] - ETA: 51s - loss: 0.9711 - accuracy: 0.6826
 24/108 [=====>........................] - ETA: 51s - loss: 0.9700 - accuracy: 0.6830
 25/108 [=====>........................] - ETA: 50s - loss: 0.9700 - accuracy: 0.6829
 26/108 [======>.......................] - ETA: 50s - loss: 0.9697 - accuracy: 0.6830
 27/108 [======>.......................] - ETA: 49s - loss: 0.9685 - accuracy: 0.6835
 28/108 [======>.......................] - ETA: 48s - loss: 0.9680 - accuracy: 0.6836
 29/108 [=======>......................] - ETA: 48s - loss: 0.9671 - accuracy: 0.6840
 30/108 [=======>......................] - ETA: 47s - loss: 0.9664 - accuracy: 0.6842
 31/108 [=======>......................] - ETA: 47s - loss: 0.9650 - accuracy: 0.6846
 32/108 [=======>......................] - ETA: 46s - loss: 0.9646 - accuracy: 0.6848
 33/108 [========>.....................] - ETA: 46s - loss: 0.9652 - accuracy: 0.6846
 34/108 [========>.....................] - ETA: 45s - loss: 0.9656 - accuracy: 0.6844
 35/108 [========>.....................] - ETA: 44s - loss: 0.9659 - accuracy: 0.6844
 36/108 [=========>....................] - ETA: 44s - loss: 0.9662 - accuracy: 0.6843
 37/108 [=========>....................] - ETA: 43s - loss: 0.9668 - accuracy: 0.6842
 38/108 [=========>....................] - ETA: 42s - loss: 0.9681 - accuracy: 0.6839
 39/108 [=========>....................] - ETA: 42s - loss: 0.9672 - accuracy: 0.6841
 40/108 [==========>...................] - ETA: 41s - loss: 0.9676 - accuracy: 0.6840
 41/108 [==========>...................] - ETA: 41s - loss: 0.9674 - accuracy: 0.6841
 42/108 [==========>...................] - ETA: 40s - loss: 0.9679 - accuracy: 0.6839
 43/108 [==========>...................] - ETA: 39s - loss: 0.9687 - accuracy: 0.6835
 44/108 [===========>..................] - ETA: 39s - loss: 0.9683 - accuracy: 0.6835
 45/108 [===========>..................] - ETA: 38s - loss: 0.9683 - accuracy: 0.6834
 46/108 [===========>..................] - ETA: 38s - loss: 0.9681 - accuracy: 0.6834
 47/108 [============>.................] - ETA: 37s - loss: 0.9688 - accuracy: 0.6832
 48/108 [============>.................] - ETA: 36s - loss: 0.9689 - accuracy: 0.6832
 49/108 [============>.................] - ETA: 36s - loss: 0.9689 - accuracy: 0.6832
 50/108 [============>.................] - ETA: 35s - loss: 0.9695 - accuracy: 0.6830
 51/108 [=============>................] - ETA: 34s - loss: 0.9689 - accuracy: 0.6832
 52/108 [=============>................] - ETA: 34s - loss: 0.9692 - accuracy: 0.6831
 53/108 [=============>................] - ETA: 33s - loss: 0.9686 - accuracy: 0.6832
 54/108 [==============>...............] - ETA: 33s - loss: 0.9684 - accuracy: 0.6832
 55/108 [==============>...............] - ETA: 32s - loss: 0.9682 - accuracy: 0.6834
 56/108 [==============>...............] - ETA: 31s - loss: 0.9673 - accuracy: 0.6835
 57/108 [==============>...............] - ETA: 31s - loss: 0.9675 - accuracy: 0.6835
 58/108 [===============>..............] - ETA: 30s - loss: 0.9674 - accuracy: 0.6834
 59/108 [===============>..............] - ETA: 30s - loss: 0.9667 - accuracy: 0.6837
 60/108 [===============>..............] - ETA: 29s - loss: 0.9668 - accuracy: 0.6837
 61/108 [===============>..............] - ETA: 28s - loss: 0.9667 - accuracy: 0.6837
 62/108 [================>.............] - ETA: 28s - loss: 0.9666 - accuracy: 0.6838
 63/108 [================>.............] - ETA: 27s - loss: 0.9661 - accuracy: 0.6840
 64/108 [================>.............] - ETA: 27s - loss: 0.9659 - accuracy: 0.6839
 65/108 [=================>............] - ETA: 26s - loss: 0.9657 - accuracy: 0.6840
 66/108 [=================>............] - ETA: 25s - loss: 0.9652 - accuracy: 0.6842
 67/108 [=================>............] - ETA: 25s - loss: 0.9646 - accuracy: 0.6843
 68/108 [=================>............] - ETA: 24s - loss: 0.9644 - accuracy: 0.6844
 69/108 [==================>...........] - ETA: 24s - loss: 0.9642 - accuracy: 0.6845
 70/108 [==================>...........] - ETA: 23s - loss: 0.9641 - accuracy: 0.6846
 71/108 [==================>...........] - ETA: 22s - loss: 0.9644 - accuracy: 0.6845
 72/108 [===================>..........] - ETA: 22s - loss: 0.9653 - accuracy: 0.6841
 73/108 [===================>..........] - ETA: 21s - loss: 0.9654 - accuracy: 0.6840
 74/108 [===================>..........] - ETA: 20s - loss: 0.9654 - accuracy: 0.6839
 75/108 [===================>..........] - ETA: 20s - loss: 0.9655 - accuracy: 0.6838
 76/108 [====================>.........] - ETA: 19s - loss: 0.9657 - accuracy: 0.6838
 77/108 [====================>.........] - ETA: 19s - loss: 0.9655 - accuracy: 0.6837
 78/108 [====================>.........] - ETA: 18s - loss: 0.9651 - accuracy: 0.6838
 79/108 [====================>.........] - ETA: 17s - loss: 0.9650 - accuracy: 0.6838
 80/108 [=====================>........] - ETA: 17s - loss: 0.9650 - accuracy: 0.6839
 81/108 [=====================>........] - ETA: 16s - loss: 0.9647 - accuracy: 0.6839
 82/108 [=====================>........] - ETA: 16s - loss: 0.9647 - accuracy: 0.6839
 83/108 [======================>.......] - ETA: 15s - loss: 0.9643 - accuracy: 0.6841
 84/108 [======================>.......] - ETA: 14s - loss: 0.9639 - accuracy: 0.6842
 85/108 [======================>.......] - ETA: 14s - loss: 0.9639 - accuracy: 0.6842
 86/108 [======================>.......] - ETA: 13s - loss: 0.9638 - accuracy: 0.6843
 87/108 [=======================>......] - ETA: 12s - loss: 0.9636 - accuracy: 0.6843
 88/108 [=======================>......] - ETA: 12s - loss: 0.9637 - accuracy: 0.6843
 89/108 [=======================>......] - ETA: 11s - loss: 0.9636 - accuracy: 0.6843
 90/108 [========================>.....] - ETA: 11s - loss: 0.9634 - accuracy: 0.6843
 91/108 [========================>.....] - ETA: 10s - loss: 0.9631 - accuracy: 0.6845
 92/108 [========================>.....] - ETA: 9s - loss: 0.9628 - accuracy: 0.6845 
 93/108 [========================>.....] - ETA: 9s - loss: 0.9625 - accuracy: 0.6846
 94/108 [=========================>....] - ETA: 8s - loss: 0.9621 - accuracy: 0.6847
 95/108 [=========================>....] - ETA: 8s - loss: 0.9619 - accuracy: 0.6848
 96/108 [=========================>....] - ETA: 7s - loss: 0.9619 - accuracy: 0.6848
 97/108 [=========================>....] - ETA: 6s - loss: 0.9621 - accuracy: 0.6848
 98/108 [==========================>...] - ETA: 6s - loss: 0.9615 - accuracy: 0.6849
 99/108 [==========================>...] - ETA: 5s - loss: 0.9614 - accuracy: 0.6849
100/108 [==========================>...] - ETA: 4s - loss: 0.9611 - accuracy: 0.6850
101/108 [===========================>..] - ETA: 4s - loss: 0.9609 - accuracy: 0.6850
102/108 [===========================>..] - ETA: 3s - loss: 0.9611 - accuracy: 0.6850
103/108 [===========================>..] - ETA: 3s - loss: 0.9606 - accuracy: 0.6851
104/108 [===========================>..] - ETA: 2s - loss: 0.9604 - accuracy: 0.6851
105/108 [============================>.] - ETA: 1s - loss: 0.9599 - accuracy: 0.6852
106/108 [============================>.] - ETA: 1s - loss: 0.9595 - accuracy: 0.6854
107/108 [============================>.] - ETA: 0s - loss: 0.9591 - accuracy: 0.6855
108/108 [==============================] - 66s 615ms/step - loss: 0.9589 - accuracy: 0.6855

108/108 [==============================] - 71s 660ms/step - loss: 0.9589 - accuracy: 0.6855 - val_loss: 0.8878 - val_accuracy: 0.7037
Epoch 7/10

  1/108 [..............................] - ETA: 1:05 - loss: 0.9451 - accuracy: 0.6904
  2/108 [..............................] - ETA: 1:05 - loss: 0.9561 - accuracy: 0.6857
  3/108 [..............................] - ETA: 1:04 - loss: 0.9531 - accuracy: 0.6861
  4/108 [>.............................] - ETA: 1:04 - loss: 0.9510 - accuracy: 0.6862
  5/108 [>.............................] - ETA: 1:03 - loss: 0.9437 - accuracy: 0.6885
  6/108 [>.............................] - ETA: 1:02 - loss: 0.9429 - accuracy: 0.6882
  7/108 [>.............................] - ETA: 1:02 - loss: 0.9398 - accuracy: 0.6884
  8/108 [=>............................] - ETA: 1:01 - loss: 0.9359 - accuracy: 0.6890
  9/108 [=>............................] - ETA: 1:00 - loss: 0.9338 - accuracy: 0.6892
 10/108 [=>............................] - ETA: 1:00 - loss: 0.9288 - accuracy: 0.6912
 11/108 [==>...........................] - ETA: 59s - loss: 0.9279 - accuracy: 0.6913 
 12/108 [==>...........................] - ETA: 59s - loss: 0.9308 - accuracy: 0.6912
 13/108 [==>...........................] - ETA: 58s - loss: 0.9351 - accuracy: 0.6898
 14/108 [==>...........................] - ETA: 57s - loss: 0.9370 - accuracy: 0.6889
 15/108 [===>..........................] - ETA: 57s - loss: 0.9371 - accuracy: 0.6888
 16/108 [===>..........................] - ETA: 56s - loss: 0.9393 - accuracy: 0.6882
 17/108 [===>..........................] - ETA: 56s - loss: 0.9397 - accuracy: 0.6879
 18/108 [====>.........................] - ETA: 55s - loss: 0.9390 - accuracy: 0.6885
 19/108 [====>.........................] - ETA: 54s - loss: 0.9395 - accuracy: 0.6885
 20/108 [====>.........................] - ETA: 54s - loss: 0.9409 - accuracy: 0.6880
 21/108 [====>.........................] - ETA: 53s - loss: 0.9406 - accuracy: 0.6882
 22/108 [=====>........................] - ETA: 52s - loss: 0.9399 - accuracy: 0.6882
 23/108 [=====>........................] - ETA: 52s - loss: 0.9402 - accuracy: 0.6883
 24/108 [=====>........................] - ETA: 51s - loss: 0.9401 - accuracy: 0.6883
 25/108 [=====>........................] - ETA: 51s - loss: 0.9407 - accuracy: 0.6881
 26/108 [======>.......................] - ETA: 50s - loss: 0.9408 - accuracy: 0.6881
 27/108 [======>.......................] - ETA: 49s - loss: 0.9418 - accuracy: 0.6882
 28/108 [======>.......................] - ETA: 49s - loss: 0.9422 - accuracy: 0.6881
 29/108 [=======>......................] - ETA: 48s - loss: 0.9424 - accuracy: 0.6880
 30/108 [=======>......................] - ETA: 48s - loss: 0.9423 - accuracy: 0.6881
 31/108 [=======>......................] - ETA: 47s - loss: 0.9427 - accuracy: 0.6881
 32/108 [=======>......................] - ETA: 46s - loss: 0.9434 - accuracy: 0.6878
 33/108 [========>.....................] - ETA: 46s - loss: 0.9434 - accuracy: 0.6878
 34/108 [========>.....................] - ETA: 45s - loss: 0.9442 - accuracy: 0.6876
 35/108 [========>.....................] - ETA: 44s - loss: 0.9433 - accuracy: 0.6879
 36/108 [=========>....................] - ETA: 44s - loss: 0.9431 - accuracy: 0.6880
 37/108 [=========>....................] - ETA: 43s - loss: 0.9430 - accuracy: 0.6881
 38/108 [=========>....................] - ETA: 43s - loss: 0.9437 - accuracy: 0.6880
 39/108 [=========>....................] - ETA: 42s - loss: 0.9437 - accuracy: 0.6881
 40/108 [==========>...................] - ETA: 41s - loss: 0.9429 - accuracy: 0.6884
 41/108 [==========>...................] - ETA: 41s - loss: 0.9425 - accuracy: 0.6888
 42/108 [==========>...................] - ETA: 40s - loss: 0.9423 - accuracy: 0.6888
 43/108 [==========>...................] - ETA: 40s - loss: 0.9417 - accuracy: 0.6890
 44/108 [===========>..................] - ETA: 39s - loss: 0.9419 - accuracy: 0.6889
 45/108 [===========>..................] - ETA: 38s - loss: 0.9421 - accuracy: 0.6888
 46/108 [===========>..................] - ETA: 38s - loss: 0.9416 - accuracy: 0.6888
 47/108 [============>.................] - ETA: 37s - loss: 0.9416 - accuracy: 0.6889
 48/108 [============>.................] - ETA: 36s - loss: 0.9414 - accuracy: 0.6888
 49/108 [============>.................] - ETA: 36s - loss: 0.9416 - accuracy: 0.6888
 50/108 [============>.................] - ETA: 35s - loss: 0.9415 - accuracy: 0.6888
 51/108 [=============>................] - ETA: 35s - loss: 0.9423 - accuracy: 0.6886
 52/108 [=============>................] - ETA: 34s - loss: 0.9434 - accuracy: 0.6884
 53/108 [=============>................] - ETA: 33s - loss: 0.9443 - accuracy: 0.6880
 54/108 [==============>...............] - ETA: 33s - loss: 0.9447 - accuracy: 0.6879
 55/108 [==============>...............] - ETA: 32s - loss: 0.9448 - accuracy: 0.6880
 56/108 [==============>...............] - ETA: 32s - loss: 0.9454 - accuracy: 0.6879
 57/108 [==============>...............] - ETA: 31s - loss: 0.9454 - accuracy: 0.6878
 58/108 [===============>..............] - ETA: 30s - loss: 0.9461 - accuracy: 0.6876
 59/108 [===============>..............] - ETA: 30s - loss: 0.9462 - accuracy: 0.6875
 60/108 [===============>..............] - ETA: 29s - loss: 0.9463 - accuracy: 0.6875
 61/108 [===============>..............] - ETA: 29s - loss: 0.9470 - accuracy: 0.6872
 62/108 [================>.............] - ETA: 28s - loss: 0.9471 - accuracy: 0.6872
 63/108 [================>.............] - ETA: 27s - loss: 0.9469 - accuracy: 0.6872
 64/108 [================>.............] - ETA: 27s - loss: 0.9469 - accuracy: 0.6870
 65/108 [=================>............] - ETA: 26s - loss: 0.9471 - accuracy: 0.6870
 66/108 [=================>............] - ETA: 26s - loss: 0.9473 - accuracy: 0.6870
 67/108 [=================>............] - ETA: 25s - loss: 0.9474 - accuracy: 0.6870
 68/108 [=================>............] - ETA: 24s - loss: 0.9477 - accuracy: 0.6869
 69/108 [==================>...........] - ETA: 24s - loss: 0.9476 - accuracy: 0.6869
 70/108 [==================>...........] - ETA: 23s - loss: 0.9476 - accuracy: 0.6869
 71/108 [==================>...........] - ETA: 22s - loss: 0.9473 - accuracy: 0.6870
 72/108 [===================>..........] - ETA: 22s - loss: 0.9474 - accuracy: 0.6869
 73/108 [===================>..........] - ETA: 21s - loss: 0.9469 - accuracy: 0.6871
 74/108 [===================>..........] - ETA: 21s - loss: 0.9462 - accuracy: 0.6873
 75/108 [===================>..........] - ETA: 20s - loss: 0.9459 - accuracy: 0.6873
 76/108 [====================>.........] - ETA: 19s - loss: 0.9456 - accuracy: 0.6874
 77/108 [====================>.........] - ETA: 19s - loss: 0.9451 - accuracy: 0.6875
 78/108 [====================>.........] - ETA: 18s - loss: 0.9444 - accuracy: 0.6877
 79/108 [====================>.........] - ETA: 17s - loss: 0.9440 - accuracy: 0.6878
 80/108 [=====================>........] - ETA: 17s - loss: 0.9436 - accuracy: 0.6879
 81/108 [=====================>........] - ETA: 16s - loss: 0.9435 - accuracy: 0.6879
 82/108 [=====================>........] - ETA: 16s - loss: 0.9433 - accuracy: 0.6880
 83/108 [======================>.......] - ETA: 15s - loss: 0.9429 - accuracy: 0.6880
 84/108 [======================>.......] - ETA: 14s - loss: 0.9423 - accuracy: 0.6882
 85/108 [======================>.......] - ETA: 14s - loss: 0.9417 - accuracy: 0.6883
 86/108 [======================>.......] - ETA: 13s - loss: 0.9412 - accuracy: 0.6884
 87/108 [=======================>......] - ETA: 12s - loss: 0.9407 - accuracy: 0.6885
 88/108 [=======================>......] - ETA: 12s - loss: 0.9405 - accuracy: 0.6885
 89/108 [=======================>......] - ETA: 11s - loss: 0.9401 - accuracy: 0.6886
 90/108 [========================>.....] - ETA: 11s - loss: 0.9397 - accuracy: 0.6887
 91/108 [========================>.....] - ETA: 10s - loss: 0.9390 - accuracy: 0.6889
 92/108 [========================>.....] - ETA: 9s - loss: 0.9387 - accuracy: 0.6890 
 93/108 [========================>.....] - ETA: 9s - loss: 0.9383 - accuracy: 0.6891
 94/108 [=========================>....] - ETA: 8s - loss: 0.9383 - accuracy: 0.6890
 95/108 [=========================>....] - ETA: 8s - loss: 0.9394 - accuracy: 0.6888
 96/108 [=========================>....] - ETA: 7s - loss: 0.9397 - accuracy: 0.6887
 97/108 [=========================>....] - ETA: 6s - loss: 0.9400 - accuracy: 0.6885
 98/108 [==========================>...] - ETA: 6s - loss: 0.9402 - accuracy: 0.6884
 99/108 [==========================>...] - ETA: 5s - loss: 0.9402 - accuracy: 0.6884
100/108 [==========================>...] - ETA: 4s - loss: 0.9403 - accuracy: 0.6883
101/108 [===========================>..] - ETA: 4s - loss: 0.9402 - accuracy: 0.6883
102/108 [===========================>..] - ETA: 3s - loss: 0.9404 - accuracy: 0.6882
103/108 [===========================>..] - ETA: 3s - loss: 0.9403 - accuracy: 0.6882
104/108 [===========================>..] - ETA: 2s - loss: 0.9399 - accuracy: 0.6883
105/108 [============================>.] - ETA: 1s - loss: 0.9397 - accuracy: 0.6882
106/108 [============================>.] - ETA: 1s - loss: 0.9398 - accuracy: 0.6882
107/108 [============================>.] - ETA: 0s - loss: 0.9396 - accuracy: 0.6883
108/108 [==============================] - 67s 616ms/step - loss: 0.9394 - accuracy: 0.6884

108/108 [==============================] - 71s 662ms/step - loss: 0.9394 - accuracy: 0.6884 - val_loss: 0.8578 - val_accuracy: 0.7032
Epoch 8/10

  1/108 [..............................] - ETA: 1:04 - loss: 0.8976 - accuracy: 0.7012
  2/108 [..............................] - ETA: 1:04 - loss: 0.8977 - accuracy: 0.7008
  3/108 [..............................] - ETA: 1:04 - loss: 0.8981 - accuracy: 0.6997
  4/108 [>.............................] - ETA: 1:04 - loss: 0.9007 - accuracy: 0.6991
  5/108 [>.............................] - ETA: 1:03 - loss: 0.9067 - accuracy: 0.6969
  6/108 [>.............................] - ETA: 1:02 - loss: 0.9105 - accuracy: 0.6960
  7/108 [>.............................] - ETA: 1:01 - loss: 0.9079 - accuracy: 0.6966
  8/108 [=>............................] - ETA: 1:01 - loss: 0.9088 - accuracy: 0.6963
  9/108 [=>............................] - ETA: 1:00 - loss: 0.9101 - accuracy: 0.6954
 10/108 [=>............................] - ETA: 59s - loss: 0.9131 - accuracy: 0.6944 
 11/108 [==>...........................] - ETA: 59s - loss: 0.9145 - accuracy: 0.6936
 12/108 [==>...........................] - ETA: 58s - loss: 0.9168 - accuracy: 0.6931
 13/108 [==>...........................] - ETA: 58s - loss: 0.9177 - accuracy: 0.6924
 14/108 [==>...........................] - ETA: 57s - loss: 0.9151 - accuracy: 0.6930
 15/108 [===>..........................] - ETA: 57s - loss: 0.9153 - accuracy: 0.6928
 16/108 [===>..........................] - ETA: 56s - loss: 0.9146 - accuracy: 0.6929
 17/108 [===>..........................] - ETA: 55s - loss: 0.9136 - accuracy: 0.6932
 18/108 [====>.........................] - ETA: 55s - loss: 0.9132 - accuracy: 0.6934
 19/108 [====>.........................] - ETA: 54s - loss: 0.9125 - accuracy: 0.6938
 20/108 [====>.........................] - ETA: 54s - loss: 0.9133 - accuracy: 0.6935
 21/108 [====>.........................] - ETA: 53s - loss: 0.9126 - accuracy: 0.6936
 22/108 [=====>........................] - ETA: 52s - loss: 0.9117 - accuracy: 0.6939
 23/108 [=====>........................] - ETA: 52s - loss: 0.9117 - accuracy: 0.6940
 24/108 [=====>........................] - ETA: 51s - loss: 0.9115 - accuracy: 0.6939
 25/108 [=====>........................] - ETA: 51s - loss: 0.9113 - accuracy: 0.6940
 26/108 [======>.......................] - ETA: 50s - loss: 0.9096 - accuracy: 0.6944
 27/108 [======>.......................] - ETA: 49s - loss: 0.9101 - accuracy: 0.6944
 28/108 [======>.......................] - ETA: 49s - loss: 0.9101 - accuracy: 0.6944
 29/108 [=======>......................] - ETA: 48s - loss: 0.9129 - accuracy: 0.6935
 30/108 [=======>......................] - ETA: 47s - loss: 0.9131 - accuracy: 0.6932
 31/108 [=======>......................] - ETA: 47s - loss: 0.9128 - accuracy: 0.6933
 32/108 [=======>......................] - ETA: 46s - loss: 0.9135 - accuracy: 0.6929
 33/108 [========>.....................] - ETA: 46s - loss: 0.9138 - accuracy: 0.6928
 34/108 [========>.....................] - ETA: 45s - loss: 0.9147 - accuracy: 0.6926
 35/108 [========>.....................] - ETA: 44s - loss: 0.9147 - accuracy: 0.6925
 36/108 [=========>....................] - ETA: 44s - loss: 0.9148 - accuracy: 0.6925
 37/108 [=========>....................] - ETA: 43s - loss: 0.9137 - accuracy: 0.6929
 38/108 [=========>....................] - ETA: 43s - loss: 0.9132 - accuracy: 0.6930
 39/108 [=========>....................] - ETA: 42s - loss: 0.9130 - accuracy: 0.6930
 40/108 [==========>...................] - ETA: 41s - loss: 0.9135 - accuracy: 0.6928
 41/108 [==========>...................] - ETA: 41s - loss: 0.9135 - accuracy: 0.6929
 42/108 [==========>...................] - ETA: 40s - loss: 0.9133 - accuracy: 0.6930
 43/108 [==========>...................] - ETA: 40s - loss: 0.9134 - accuracy: 0.6929
 44/108 [===========>..................] - ETA: 39s - loss: 0.9135 - accuracy: 0.6929
 45/108 [===========>..................] - ETA: 38s - loss: 0.9129 - accuracy: 0.6930
 46/108 [===========>..................] - ETA: 38s - loss: 0.9130 - accuracy: 0.6930
 47/108 [============>.................] - ETA: 37s - loss: 0.9130 - accuracy: 0.6930
 48/108 [============>.................] - ETA: 37s - loss: 0.9132 - accuracy: 0.6929
 49/108 [============>.................] - ETA: 36s - loss: 0.9133 - accuracy: 0.6928
 50/108 [============>.................] - ETA: 35s - loss: 0.9129 - accuracy: 0.6929
 51/108 [=============>................] - ETA: 35s - loss: 0.9130 - accuracy: 0.6927
 52/108 [=============>................] - ETA: 34s - loss: 0.9123 - accuracy: 0.6930
 53/108 [=============>................] - ETA: 34s - loss: 0.9124 - accuracy: 0.6929
 54/108 [==============>...............] - ETA: 33s - loss: 0.9125 - accuracy: 0.6930
 55/108 [==============>...............] - ETA: 32s - loss: 0.9123 - accuracy: 0.6931
 56/108 [==============>...............] - ETA: 32s - loss: 0.9120 - accuracy: 0.6931
 57/108 [==============>...............] - ETA: 31s - loss: 0.9119 - accuracy: 0.6932
 58/108 [===============>..............] - ETA: 31s - loss: 0.9119 - accuracy: 0.6932
 59/108 [===============>..............] - ETA: 30s - loss: 0.9117 - accuracy: 0.6931
 60/108 [===============>..............] - ETA: 29s - loss: 0.9113 - accuracy: 0.6932
 61/108 [===============>..............] - ETA: 29s - loss: 0.9111 - accuracy: 0.6934
 62/108 [================>.............] - ETA: 28s - loss: 0.9108 - accuracy: 0.6935
 63/108 [================>.............] - ETA: 27s - loss: 0.9103 - accuracy: 0.6938
 64/108 [================>.............] - ETA: 27s - loss: 0.9100 - accuracy: 0.6939
 65/108 [=================>............] - ETA: 26s - loss: 0.9099 - accuracy: 0.6940
 66/108 [=================>............] - ETA: 26s - loss: 0.9096 - accuracy: 0.6941
 67/108 [=================>............] - ETA: 25s - loss: 0.9094 - accuracy: 0.6942
 68/108 [=================>............] - ETA: 24s - loss: 0.9089 - accuracy: 0.6943
 69/108 [==================>...........] - ETA: 24s - loss: 0.9092 - accuracy: 0.6943
 70/108 [==================>...........] - ETA: 23s - loss: 0.9106 - accuracy: 0.6939
 71/108 [==================>...........] - ETA: 22s - loss: 0.9109 - accuracy: 0.6936
 72/108 [===================>..........] - ETA: 22s - loss: 0.9107 - accuracy: 0.6937
 73/108 [===================>..........] - ETA: 21s - loss: 0.9112 - accuracy: 0.6935
 74/108 [===================>..........] - ETA: 21s - loss: 0.9116 - accuracy: 0.6934
 75/108 [===================>..........] - ETA: 20s - loss: 0.9119 - accuracy: 0.6933
 76/108 [====================>.........] - ETA: 19s - loss: 0.9122 - accuracy: 0.6934
 77/108 [====================>.........] - ETA: 19s - loss: 0.9123 - accuracy: 0.6934
 78/108 [====================>.........] - ETA: 18s - loss: 0.9123 - accuracy: 0.6934
 79/108 [====================>.........] - ETA: 17s - loss: 0.9126 - accuracy: 0.6932
 80/108 [=====================>........] - ETA: 17s - loss: 0.9124 - accuracy: 0.6933
 81/108 [=====================>........] - ETA: 16s - loss: 0.9119 - accuracy: 0.6934
 82/108 [=====================>........] - ETA: 16s - loss: 0.9118 - accuracy: 0.6933
 83/108 [======================>.......] - ETA: 15s - loss: 0.9114 - accuracy: 0.6934
 84/108 [======================>.......] - ETA: 14s - loss: 0.9113 - accuracy: 0.6934
 85/108 [======================>.......] - ETA: 14s - loss: 0.9112 - accuracy: 0.6934
 86/108 [======================>.......] - ETA: 13s - loss: 0.9108 - accuracy: 0.6935
 87/108 [=======================>......] - ETA: 12s - loss: 0.9111 - accuracy: 0.6935
 88/108 [=======================>......] - ETA: 12s - loss: 0.9109 - accuracy: 0.6935
 89/108 [=======================>......] - ETA: 11s - loss: 0.9105 - accuracy: 0.6937
 90/108 [========================>.....] - ETA: 11s - loss: 0.9102 - accuracy: 0.6937
 91/108 [========================>.....] - ETA: 10s - loss: 0.9099 - accuracy: 0.6938
 92/108 [========================>.....] - ETA: 9s - loss: 0.9095 - accuracy: 0.6939 
 93/108 [========================>.....] - ETA: 9s - loss: 0.9094 - accuracy: 0.6939
 94/108 [=========================>....] - ETA: 8s - loss: 0.9092 - accuracy: 0.6939
 95/108 [=========================>....] - ETA: 8s - loss: 0.9091 - accuracy: 0.6939
 96/108 [=========================>....] - ETA: 7s - loss: 0.9088 - accuracy: 0.6940
 97/108 [=========================>....] - ETA: 6s - loss: 0.9086 - accuracy: 0.6941
 98/108 [==========================>...] - ETA: 6s - loss: 0.9081 - accuracy: 0.6942
 99/108 [==========================>...] - ETA: 5s - loss: 0.9081 - accuracy: 0.6943
100/108 [==========================>...] - ETA: 4s - loss: 0.9080 - accuracy: 0.6943
101/108 [===========================>..] - ETA: 4s - loss: 0.9079 - accuracy: 0.6943
102/108 [===========================>..] - ETA: 3s - loss: 0.9077 - accuracy: 0.6944
103/108 [===========================>..] - ETA: 3s - loss: 0.9077 - accuracy: 0.6944
104/108 [===========================>..] - ETA: 2s - loss: 0.9074 - accuracy: 0.6944
105/108 [============================>.] - ETA: 1s - loss: 0.9071 - accuracy: 0.6945
106/108 [============================>.] - ETA: 1s - loss: 0.9072 - accuracy: 0.6945
107/108 [============================>.] - ETA: 0s - loss: 0.9072 - accuracy: 0.6945
108/108 [==============================] - 67s 617ms/step - loss: 0.9072 - accuracy: 0.6945

108/108 [==============================] - 71s 662ms/step - loss: 0.9072 - accuracy: 0.6945 - val_loss: 0.8263 - val_accuracy: 0.7175
Epoch 9/10

  1/108 [..............................] - ETA: 1:05 - loss: 0.8824 - accuracy: 0.7051
  2/108 [..............................] - ETA: 1:05 - loss: 0.8924 - accuracy: 0.6997
  3/108 [..............................] - ETA: 1:04 - loss: 0.9007 - accuracy: 0.6965
  4/108 [>.............................] - ETA: 1:04 - loss: 0.8957 - accuracy: 0.6978
  5/108 [>.............................] - ETA: 1:03 - loss: 0.8997 - accuracy: 0.6967
  6/108 [>.............................] - ETA: 1:02 - loss: 0.9025 - accuracy: 0.6953
  7/108 [>.............................] - ETA: 1:02 - loss: 0.9019 - accuracy: 0.6954
  8/108 [=>............................] - ETA: 1:01 - loss: 0.9000 - accuracy: 0.6962
  9/108 [=>............................] - ETA: 1:00 - loss: 0.8982 - accuracy: 0.6973
 10/108 [=>............................] - ETA: 1:00 - loss: 0.8984 - accuracy: 0.6969
 11/108 [==>...........................] - ETA: 59s - loss: 0.9026 - accuracy: 0.6952 
 12/108 [==>...........................] - ETA: 58s - loss: 0.9032 - accuracy: 0.6952
 13/108 [==>...........................] - ETA: 58s - loss: 0.9042 - accuracy: 0.6948
 14/108 [==>...........................] - ETA: 57s - loss: 0.9055 - accuracy: 0.6941
 15/108 [===>..........................] - ETA: 57s - loss: 0.9040 - accuracy: 0.6944
 16/108 [===>..........................] - ETA: 56s - loss: 0.9034 - accuracy: 0.6945
 17/108 [===>..........................] - ETA: 55s - loss: 0.9033 - accuracy: 0.6946
 18/108 [====>.........................] - ETA: 55s - loss: 0.9008 - accuracy: 0.6955
 19/108 [====>.........................] - ETA: 54s - loss: 0.8996 - accuracy: 0.6959
 20/108 [====>.........................] - ETA: 54s - loss: 0.9014 - accuracy: 0.6953
 21/108 [====>.........................] - ETA: 53s - loss: 0.9018 - accuracy: 0.6951
 22/108 [=====>........................] - ETA: 53s - loss: 0.9022 - accuracy: 0.6947
 23/108 [=====>........................] - ETA: 52s - loss: 0.9029 - accuracy: 0.6942
 24/108 [=====>........................] - ETA: 52s - loss: 0.9012 - accuracy: 0.6948
 25/108 [=====>........................] - ETA: 51s - loss: 0.9004 - accuracy: 0.6947
 26/108 [======>.......................] - ETA: 51s - loss: 0.9001 - accuracy: 0.6945
 27/108 [======>.......................] - ETA: 50s - loss: 0.8993 - accuracy: 0.6949
 28/108 [======>.......................] - ETA: 49s - loss: 0.8989 - accuracy: 0.6950
 29/108 [=======>......................] - ETA: 49s - loss: 0.8989 - accuracy: 0.6949
 30/108 [=======>......................] - ETA: 48s - loss: 0.8983 - accuracy: 0.6949
 31/108 [=======>......................] - ETA: 48s - loss: 0.8980 - accuracy: 0.6949
 32/108 [=======>......................] - ETA: 47s - loss: 0.8970 - accuracy: 0.6951
 33/108 [========>.....................] - ETA: 46s - loss: 0.8959 - accuracy: 0.6954
 34/108 [========>.....................] - ETA: 46s - loss: 0.8954 - accuracy: 0.6953
 35/108 [========>.....................] - ETA: 45s - loss: 0.8951 - accuracy: 0.6953
 36/108 [=========>....................] - ETA: 44s - loss: 0.8957 - accuracy: 0.6952
 37/108 [=========>....................] - ETA: 44s - loss: 0.8969 - accuracy: 0.6950
 38/108 [=========>....................] - ETA: 43s - loss: 0.8974 - accuracy: 0.6949
 39/108 [=========>....................] - ETA: 43s - loss: 0.8966 - accuracy: 0.6951
 40/108 [==========>...................] - ETA: 42s - loss: 0.8958 - accuracy: 0.6953
 41/108 [==========>...................] - ETA: 41s - loss: 0.8961 - accuracy: 0.6952
 42/108 [==========>...................] - ETA: 41s - loss: 0.8956 - accuracy: 0.6954
 43/108 [==========>...................] - ETA: 40s - loss: 0.8951 - accuracy: 0.6956
 44/108 [===========>..................] - ETA: 40s - loss: 0.8947 - accuracy: 0.6958
 45/108 [===========>..................] - ETA: 39s - loss: 0.8947 - accuracy: 0.6959
 46/108 [===========>..................] - ETA: 38s - loss: 0.8942 - accuracy: 0.6960
 47/108 [============>.................] - ETA: 38s - loss: 0.8939 - accuracy: 0.6961
 48/108 [============>.................] - ETA: 37s - loss: 0.8937 - accuracy: 0.6961
 49/108 [============>.................] - ETA: 37s - loss: 0.8935 - accuracy: 0.6962
 50/108 [============>.................] - ETA: 36s - loss: 0.8935 - accuracy: 0.6962
 51/108 [=============>................] - ETA: 35s - loss: 0.8933 - accuracy: 0.6962
 52/108 [=============>................] - ETA: 35s - loss: 0.8933 - accuracy: 0.6962
 53/108 [=============>................] - ETA: 34s - loss: 0.8956 - accuracy: 0.6956
 54/108 [==============>...............] - ETA: 33s - loss: 0.8970 - accuracy: 0.6953
 55/108 [==============>...............] - ETA: 33s - loss: 0.8972 - accuracy: 0.6952
 56/108 [==============>...............] - ETA: 32s - loss: 0.8979 - accuracy: 0.6952
 57/108 [==============>...............] - ETA: 31s - loss: 0.8985 - accuracy: 0.6950
 58/108 [===============>..............] - ETA: 31s - loss: 0.8989 - accuracy: 0.6949
 59/108 [===============>..............] - ETA: 30s - loss: 0.8995 - accuracy: 0.6947
 60/108 [===============>..............] - ETA: 30s - loss: 0.8998 - accuracy: 0.6946
 61/108 [===============>..............] - ETA: 29s - loss: 0.8997 - accuracy: 0.6946
 62/108 [================>.............] - ETA: 28s - loss: 0.8994 - accuracy: 0.6947
 63/108 [================>.............] - ETA: 28s - loss: 0.8995 - accuracy: 0.6946
 64/108 [================>.............] - ETA: 27s - loss: 0.8994 - accuracy: 0.6946
 65/108 [=================>............] - ETA: 26s - loss: 0.8992 - accuracy: 0.6946
 66/108 [=================>............] - ETA: 26s - loss: 0.8989 - accuracy: 0.6947
 67/108 [=================>............] - ETA: 25s - loss: 0.8985 - accuracy: 0.6949
 68/108 [=================>............] - ETA: 24s - loss: 0.8982 - accuracy: 0.6951
 69/108 [==================>...........] - ETA: 24s - loss: 0.8980 - accuracy: 0.6952
 70/108 [==================>...........] - ETA: 23s - loss: 0.8977 - accuracy: 0.6953
 71/108 [==================>...........] - ETA: 23s - loss: 0.8974 - accuracy: 0.6954
 72/108 [===================>..........] - ETA: 22s - loss: 0.8973 - accuracy: 0.6955
 73/108 [===================>..........] - ETA: 21s - loss: 0.8972 - accuracy: 0.6955
 74/108 [===================>..........] - ETA: 21s - loss: 0.8973 - accuracy: 0.6954
 75/108 [===================>..........] - ETA: 20s - loss: 0.8967 - accuracy: 0.6955
 76/108 [====================>.........] - ETA: 19s - loss: 0.8965 - accuracy: 0.6956
 77/108 [====================>.........] - ETA: 19s - loss: 0.8962 - accuracy: 0.6956
 78/108 [====================>.........] - ETA: 18s - loss: 0.8960 - accuracy: 0.6957
 79/108 [====================>.........] - ETA: 18s - loss: 0.8957 - accuracy: 0.6958
 80/108 [=====================>........] - ETA: 17s - loss: 0.8957 - accuracy: 0.6958
 81/108 [=====================>........] - ETA: 16s - loss: 0.8960 - accuracy: 0.6957
 82/108 [=====================>........] - ETA: 16s - loss: 0.8958 - accuracy: 0.6958
 83/108 [======================>.......] - ETA: 15s - loss: 0.8956 - accuracy: 0.6958
 84/108 [======================>.......] - ETA: 14s - loss: 0.8955 - accuracy: 0.6958
 85/108 [======================>.......] - ETA: 14s - loss: 0.8952 - accuracy: 0.6959
 86/108 [======================>.......] - ETA: 13s - loss: 0.8947 - accuracy: 0.6961
 87/108 [=======================>......] - ETA: 13s - loss: 0.8947 - accuracy: 0.6962
 88/108 [=======================>......] - ETA: 12s - loss: 0.8947 - accuracy: 0.6962
 89/108 [=======================>......] - ETA: 11s - loss: 0.8949 - accuracy: 0.6961
 90/108 [========================>.....] - ETA: 11s - loss: 0.8952 - accuracy: 0.6961
 91/108 [========================>.....] - ETA: 10s - loss: 0.8951 - accuracy: 0.6962
 92/108 [========================>.....] - ETA: 9s - loss: 0.8951 - accuracy: 0.6962 
 93/108 [========================>.....] - ETA: 9s - loss: 0.8952 - accuracy: 0.6962
 94/108 [=========================>....] - ETA: 8s - loss: 0.8952 - accuracy: 0.6963
 95/108 [=========================>....] - ETA: 8s - loss: 0.8951 - accuracy: 0.6963
 96/108 [=========================>....] - ETA: 7s - loss: 0.8948 - accuracy: 0.6964
 97/108 [=========================>....] - ETA: 6s - loss: 0.8946 - accuracy: 0.6965
 98/108 [==========================>...] - ETA: 6s - loss: 0.8943 - accuracy: 0.6965
 99/108 [==========================>...] - ETA: 5s - loss: 0.8948 - accuracy: 0.6965
100/108 [==========================>...] - ETA: 4s - loss: 0.8948 - accuracy: 0.6965
101/108 [===========================>..] - ETA: 4s - loss: 0.8947 - accuracy: 0.6965
102/108 [===========================>..] - ETA: 3s - loss: 0.8946 - accuracy: 0.6965
103/108 [===========================>..] - ETA: 3s - loss: 0.8945 - accuracy: 0.6965
104/108 [===========================>..] - ETA: 2s - loss: 0.8945 - accuracy: 0.6965
105/108 [============================>.] - ETA: 1s - loss: 0.8943 - accuracy: 0.6965
106/108 [============================>.] - ETA: 1s - loss: 0.8940 - accuracy: 0.6965
107/108 [============================>.] - ETA: 0s - loss: 0.8943 - accuracy: 0.6964
108/108 [==============================] - 67s 620ms/step - loss: 0.8940 - accuracy: 0.6965

108/108 [==============================] - 72s 667ms/step - loss: 0.8940 - accuracy: 0.6965 - val_loss: 0.8250 - val_accuracy: 0.7019
Epoch 10/10

  1/108 [..............................] - ETA: 1:05 - loss: 0.8825 - accuracy: 0.6963
  2/108 [..............................] - ETA: 1:06 - loss: 0.8715 - accuracy: 0.6998
  3/108 [..............................] - ETA: 1:04 - loss: 0.8882 - accuracy: 0.6948
  4/108 [>.............................] - ETA: 1:04 - loss: 0.8910 - accuracy: 0.6949
  5/108 [>.............................] - ETA: 1:04 - loss: 0.8908 - accuracy: 0.6949
  6/108 [>.............................] - ETA: 1:03 - loss: 0.8947 - accuracy: 0.6944
  7/108 [>.............................] - ETA: 1:02 - loss: 0.8978 - accuracy: 0.6932
  8/108 [=>............................] - ETA: 1:02 - loss: 0.8938 - accuracy: 0.6950
  9/108 [=>............................] - ETA: 1:01 - loss: 0.8999 - accuracy: 0.6933
 10/108 [=>............................] - ETA: 1:00 - loss: 0.8980 - accuracy: 0.6940
 11/108 [==>...........................] - ETA: 1:00 - loss: 0.8991 - accuracy: 0.6934
 12/108 [==>...........................] - ETA: 59s - loss: 0.8991 - accuracy: 0.6928 
 13/108 [==>...........................] - ETA: 58s - loss: 0.9006 - accuracy: 0.6921
 14/108 [==>...........................] - ETA: 58s - loss: 0.8994 - accuracy: 0.6922
 15/108 [===>..........................] - ETA: 57s - loss: 0.8997 - accuracy: 0.6922
 16/108 [===>..........................] - ETA: 56s - loss: 0.9000 - accuracy: 0.6919
 17/108 [===>..........................] - ETA: 56s - loss: 0.8984 - accuracy: 0.6927
 18/108 [====>.........................] - ETA: 55s - loss: 0.8989 - accuracy: 0.6926
 19/108 [====>.........................] - ETA: 55s - loss: 0.8962 - accuracy: 0.6937
 20/108 [====>.........................] - ETA: 54s - loss: 0.8971 - accuracy: 0.6933
 21/108 [====>.........................] - ETA: 54s - loss: 0.8946 - accuracy: 0.6942
 22/108 [=====>........................] - ETA: 53s - loss: 0.8939 - accuracy: 0.6945
 23/108 [=====>........................] - ETA: 53s - loss: 0.8936 - accuracy: 0.6946
 24/108 [=====>........................] - ETA: 52s - loss: 0.8925 - accuracy: 0.6948
 25/108 [=====>........................] - ETA: 52s - loss: 0.8909 - accuracy: 0.6955
 26/108 [======>.......................] - ETA: 51s - loss: 0.8903 - accuracy: 0.6956
 27/108 [======>.......................] - ETA: 50s - loss: 0.8884 - accuracy: 0.6965
 28/108 [======>.......................] - ETA: 50s - loss: 0.8875 - accuracy: 0.6969
 29/108 [=======>......................] - ETA: 49s - loss: 0.8875 - accuracy: 0.6969
 30/108 [=======>......................] - ETA: 49s - loss: 0.8873 - accuracy: 0.6969
 31/108 [=======>......................] - ETA: 48s - loss: 0.8870 - accuracy: 0.6971
 32/108 [=======>......................] - ETA: 47s - loss: 0.8864 - accuracy: 0.6972
 33/108 [========>.....................] - ETA: 47s - loss: 0.8853 - accuracy: 0.6975
 34/108 [========>.....................] - ETA: 46s - loss: 0.8849 - accuracy: 0.6975
 35/108 [========>.....................] - ETA: 46s - loss: 0.8844 - accuracy: 0.6976
 36/108 [=========>....................] - ETA: 45s - loss: 0.8838 - accuracy: 0.6977
 37/108 [=========>....................] - ETA: 44s - loss: 0.8834 - accuracy: 0.6978
 38/108 [=========>....................] - ETA: 44s - loss: 0.8829 - accuracy: 0.6979
 39/108 [=========>....................] - ETA: 43s - loss: 0.8822 - accuracy: 0.6981
 40/108 [==========>...................] - ETA: 43s - loss: 0.8824 - accuracy: 0.6980
 41/108 [==========>...................] - ETA: 42s - loss: 0.8823 - accuracy: 0.6982
 42/108 [==========>...................] - ETA: 41s - loss: 0.8823 - accuracy: 0.6981
 43/108 [==========>...................] - ETA: 41s - loss: 0.8824 - accuracy: 0.6980
 44/108 [===========>..................] - ETA: 40s - loss: 0.8811 - accuracy: 0.6984
 45/108 [===========>..................] - ETA: 40s - loss: 0.8797 - accuracy: 0.6988
 46/108 [===========>..................] - ETA: 39s - loss: 0.8789 - accuracy: 0.6991
 47/108 [============>.................] - ETA: 38s - loss: 0.8781 - accuracy: 0.6994
 48/108 [============>.................] - ETA: 38s - loss: 0.8779 - accuracy: 0.6995
 49/108 [============>.................] - ETA: 37s - loss: 0.8765 - accuracy: 0.6998
 50/108 [============>.................] - ETA: 36s - loss: 0.8763 - accuracy: 0.6999
 51/108 [=============>................] - ETA: 36s - loss: 0.8770 - accuracy: 0.6996
 52/108 [=============>................] - ETA: 35s - loss: 0.8786 - accuracy: 0.6991
 53/108 [=============>................] - ETA: 34s - loss: 0.8794 - accuracy: 0.6988
 54/108 [==============>...............] - ETA: 34s - loss: 0.8790 - accuracy: 0.6990
 55/108 [==============>...............] - ETA: 33s - loss: 0.8791 - accuracy: 0.6989
 56/108 [==============>...............] - ETA: 33s - loss: 0.8790 - accuracy: 0.6988
 57/108 [==============>...............] - ETA: 32s - loss: 0.8788 - accuracy: 0.6988
 58/108 [===============>..............] - ETA: 31s - loss: 0.8791 - accuracy: 0.6987
 59/108 [===============>..............] - ETA: 31s - loss: 0.8802 - accuracy: 0.6983
 60/108 [===============>..............] - ETA: 30s - loss: 0.8805 - accuracy: 0.6982
 61/108 [===============>..............] - ETA: 29s - loss: 0.8800 - accuracy: 0.6983
 62/108 [================>.............] - ETA: 29s - loss: 0.8804 - accuracy: 0.6982
 63/108 [================>.............] - ETA: 28s - loss: 0.8802 - accuracy: 0.6983
 64/108 [================>.............] - ETA: 27s - loss: 0.8808 - accuracy: 0.6981
 65/108 [=================>............] - ETA: 27s - loss: 0.8810 - accuracy: 0.6980
 66/108 [=================>............] - ETA: 26s - loss: 0.8815 - accuracy: 0.6978
 67/108 [=================>............] - ETA: 26s - loss: 0.8818 - accuracy: 0.6976
 68/108 [=================>............] - ETA: 25s - loss: 0.8821 - accuracy: 0.6976
 69/108 [==================>...........] - ETA: 24s - loss: 0.8821 - accuracy: 0.6975
 70/108 [==================>...........] - ETA: 24s - loss: 0.8820 - accuracy: 0.6975
 71/108 [==================>...........] - ETA: 23s - loss: 0.8823 - accuracy: 0.6975
 72/108 [===================>..........] - ETA: 22s - loss: 0.8825 - accuracy: 0.6974
 73/108 [===================>..........] - ETA: 22s - loss: 0.8822 - accuracy: 0.6975
 74/108 [===================>..........] - ETA: 21s - loss: 0.8823 - accuracy: 0.6975
 75/108 [===================>..........] - ETA: 20s - loss: 0.8821 - accuracy: 0.6975
 76/108 [====================>.........] - ETA: 20s - loss: 0.8816 - accuracy: 0.6976
 77/108 [====================>.........] - ETA: 19s - loss: 0.8815 - accuracy: 0.6977
 78/108 [====================>.........] - ETA: 19s - loss: 0.8812 - accuracy: 0.6978
 79/108 [====================>.........] - ETA: 18s - loss: 0.8810 - accuracy: 0.6978
 80/108 [=====================>........] - ETA: 17s - loss: 0.8809 - accuracy: 0.6978
 81/108 [=====================>........] - ETA: 17s - loss: 0.8807 - accuracy: 0.6979
 82/108 [=====================>........] - ETA: 16s - loss: 0.8802 - accuracy: 0.6981
 83/108 [======================>.......] - ETA: 15s - loss: 0.8806 - accuracy: 0.6980
 84/108 [======================>.......] - ETA: 15s - loss: 0.8807 - accuracy: 0.6979
 85/108 [======================>.......] - ETA: 14s - loss: 0.8808 - accuracy: 0.6978
 86/108 [======================>.......] - ETA: 13s - loss: 0.8807 - accuracy: 0.6979
 87/108 [=======================>......] - ETA: 13s - loss: 0.8807 - accuracy: 0.6979
 88/108 [=======================>......] - ETA: 12s - loss: 0.8809 - accuracy: 0.6979
 89/108 [=======================>......] - ETA: 12s - loss: 0.8809 - accuracy: 0.6979
 90/108 [========================>.....] - ETA: 11s - loss: 0.8811 - accuracy: 0.6978
 91/108 [========================>.....] - ETA: 10s - loss: 0.8810 - accuracy: 0.6978
 92/108 [========================>.....] - ETA: 10s - loss: 0.8813 - accuracy: 0.6977
 93/108 [========================>.....] - ETA: 9s - loss: 0.8812 - accuracy: 0.6977 
 94/108 [=========================>....] - ETA: 8s - loss: 0.8810 - accuracy: 0.6977
 95/108 [=========================>....] - ETA: 8s - loss: 0.8807 - accuracy: 0.6978
 96/108 [=========================>....] - ETA: 7s - loss: 0.8805 - accuracy: 0.6978
 97/108 [=========================>....] - ETA: 7s - loss: 0.8803 - accuracy: 0.6979
 98/108 [==========================>...] - ETA: 6s - loss: 0.8800 - accuracy: 0.6979
 99/108 [==========================>...] - ETA: 5s - loss: 0.8798 - accuracy: 0.6980
100/108 [==========================>...] - ETA: 5s - loss: 0.8797 - accuracy: 0.6980
101/108 [===========================>..] - ETA: 4s - loss: 0.8796 - accuracy: 0.6980
102/108 [===========================>..] - ETA: 3s - loss: 0.8793 - accuracy: 0.6981
103/108 [===========================>..] - ETA: 3s - loss: 0.8791 - accuracy: 0.6982
104/108 [===========================>..] - ETA: 2s - loss: 0.8786 - accuracy: 0.6983
105/108 [============================>.] - ETA: 1s - loss: 0.8785 - accuracy: 0.6983
106/108 [============================>.] - ETA: 1s - loss: 0.8783 - accuracy: 0.6984
107/108 [============================>.] - ETA: 0s - loss: 0.8785 - accuracy: 0.6984
108/108 [==============================] - 69s 635ms/step - loss: 0.8788 - accuracy: 0.6983

108/108 [==============================] - 74s 684ms/step - loss: 0.8788 - accuracy: 0.6983 - val_loss: 0.8124 - val_accuracy: 0.7149
plot(history)
`geom_smooth()` using formula 'y ~ x'

Prediction

Obtaining the output for prediction (Testing)

predict_output <- model_RNN %>% predict(matrix(tensor_x[5, ,], nrow=1))
# predict_output


predict_output <- argmax(predict_output, FALSE)
# train_x[5]
train_y[5]
[1] "votre moins aimé fruit est le raisin , mais mon moins aimé est la pomme ."
logits_to_text(predict_output, y_tk, predict = TRUE)
 [1] "votre"  "fruit"  "est"    "moins"  "aimé"  "la"     "mais"   "mais"   "mon"    "moins"  "aimé"  "est"    "la"     "citron" "<PAD>" 
[16] "<PAD>"  "<PAD>"  "<PAD>"  "<PAD>"  "<PAD>"  "<PAD>" 

Predictions for Training set


pred_translation <- function(i){
  predict_output <- model_RNN %>% predict(matrix(tensor_x[i, ,], nrow=1))
  predict_output <- argmax(predict_output, FALSE)
  converted_text <- logits_to_text(predict_output, y_tk)
  converted_text[converted_text == "<PAD>"] <- ""
  converted_text <- trimws(paste(converted_text, collapse = " "))
  print(paste("Input sentence:", train_x[i]))
  print(paste("Intended Output Sentence:", train_y[i]))
  print(paste("Predicted Output Sentence:", converted_text))
}

## `i` represents the index within the training set.
pred_translation(5)
[1] "Input sentence: your least liked fruit is the grape , but my least liked is the apple ."
[1] "Intended Output Sentence: votre moins aimé fruit est le raisin , mais mon moins aimé est la pomme ."
[1] "Predicted Output Sentence: votre fruit est moins aimé la mais mais mon moins aimé est la citron"
LS0tDQp0aXRsZTogIkxhbmd1YWdlIFRyYW5zbGF0aW9uIHdpdGggUk5OIg0KYXV0aG9yOiAiTWF4IExlZSAmIFlvbmcgU2hlbmciDQpkYXRlOiAiVGVybSA3LCAyMDIyIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KKlJlZmVyZW5jZXMqDQoNCkd1aWRlOg0KaHR0cHM6Ly9naXRodWIuY29tL3RvbW15dHJhY2V5L0FJTkQtQ2Fwc3RvbmUNCmh0dHBzOi8vdG9tbXl0cmFjZXkuZ2l0aHViLmlvL0FJTkQtQ2Fwc3RvbmUvbWFjaGluZV90cmFuc2xhdGlvbi5odG1sDQoNCldoeSBUaW1lRGlzdHJpYnV0ZWREZW5zZUxheWVyOg0KaHR0cHM6Ly9kYXRhc2NpZW5jZS5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMTA4MzYvdGhlLWRpZmZlcmVuY2UtYmV0d2Vlbi1kZW5zZS1hbmQtdGltZWRpc3RyaWJ1dGVkZGVuc2Utb2Yta2VyYXMNCg0KS2VyYXMgRG9jdW1lbnRhdGlvbjoNCmh0dHBzOi8vdGVuc29yZmxvdy5yc3R1ZGlvLmNvbS9yZWZlcmVuY2Uva2VyYXMvDQoNClN0YWNrb3ZlcmZsb3c6DQpodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDk2MTE0MS9zZXR0aW5nLXVwLWEtM2QtbWF0cml4LWluLXItYW5kLWFjY2Vzc2luZy1jZXJ0YWluLWVsZW1lbnRzDQoNCkRhdGFzZXQ6DQpodHRwOi8vd3d3Lm1hbnl0aGluZ3Mub3JnL2Fua2kvDQoNCg0KKkF0dGVtcHQgdG8gdHJhaW4gd29yZHMgdXNpbmcgOC0xMCBXb3JkcyogYWNjdXJhY3kgY291bGQgYmUgZHVlIHRvIFBBRERJTkcNCg0KIyBJbXBvcnRpbmcgb2YgTGlicmFyaWVzDQpgYGB7ciB3YXJuaW5nPUZBTFNFLHJlc3VsdHM9J2hpZGUnLGVycm9yPUZBTFNFLG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KGtlcmFzKQ0KbGlicmFyeSh0ZW5zb3JmbG93KQ0KbGlicmFyeSh0b2tlbml6ZXJzKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocG5nKQ0KbGlicmFyeShyZXRpY3VsYXRlKQ0KbGlicmFyeShhYmluZCkNCmxpYnJhcnkocmFtaWZ5KQ0KbGlicmFyeShzdHJpbmdyKQ0KbGlicmFyeShkZWVwdml6KQ0KYGBgDQoNCmBgYHtyfQ0KbGFuZ3VhZ2UgPC0gIkZyZW5jaCINCmxhbmd1YWdlX2NvZGUgPC0gImZyIg0KZmlsZV9uYW1lIDwtIHBhc3RlMCgidHJhbnNsYXRpb25fIiwgbGFuZ3VhZ2VfY29kZSwgIi5jc3YiKQ0KdHJhaW4gPC0gcmVhZC5jc3YoZmlsZV9uYW1lLCBlbmNvZGluZz0iVVRGLTgiLCBzdHJpbmdzQXNGYWN0b3JzPUZBTFNFKQ0KYGBgDQoNCmBgYHtyfQ0KIyBsYW5ndWFnZSA8LSAiSW5kb25lc2lhbiINCiMgbGFuZ3VhZ2VfY29kZSA8LSAiaW5kIg0KIyBmaWxlX25hbWUgPC0gcGFzdGUwKCJ0cmFuc2xhdGlvbl8iLCBsYW5ndWFnZV9jb2RlLCAiLmNzdiIpDQojIHRyYWluIDwtIHJlYWQuY3N2KGZpbGVfbmFtZSwgZW5jb2Rpbmc9IlVURi04Iiwgc3RyaW5nc0FzRmFjdG9ycz1GQUxTRSkNCmBgYA0KIyMgQW1lbmRpbmcgY29sdW1uIG5hbWVzDQpgYGB7cn0NCmNvbG5hbWVzKHRyYWluKSA8LSBjKCJFbmdsaXNoIiwgbGFuZ3VhZ2UpDQpgYGANCg0KYGBge3J9DQp0cmFpbg0KYGBgDQojIFRva2VuaXplcg0KYGBge3J9DQp0b2tlbml6ZSA8LSBmdW5jdGlvbih4KXsNCiAgdG9rZW5pemVyIDwtIHRleHRfdG9rZW5pemVyKG51bV93b3JkcyA9IDEwMDAwMDApDQogIGZpdF90ZXh0X3Rva2VuaXplcih0b2tlbml6ZXIsIHgpDQogIHNlcXVlbmNlcyA8LSB0ZXh0c190b19zZXF1ZW5jZXModG9rZW5pemVyLCB4KQ0KICByZXR1cm4oYyhzZXF1ZW5jZXMsIHRva2VuaXplcikpDQp9DQpgYGANCg0KIyBQYWRkaW5nDQpgYGB7cn0NCnBhZCA8LSBmdW5jdGlvbih4LCBsZW5ndGg9TlVMTCl7DQogIHJldHVybihwYWRfc2VxdWVuY2VzKHgsIG1heGxlbiA9IGxlbmd0aCwgcGFkZGluZyA9ICdwb3N0JykpDQp9DQpgYGANCg0KIyBTdWJzZXR0aW5nIHRvIDgtMTAgd29yZHMgd2l0aGluIHRoZSBFbmdsaXNoIHNlbnRlbmNlDQoNCiMjIEZpbmRpbmcgbnVtYmVyIG9mIHdvcmRzIHdpdGhpbiBhbiAgc2VudGVuY2UNCmBgYHtyfQ0KIyBzZW50ZW5jZXNfbGVuZ3RoX3ZlYyA8LSBmdW5jdGlvbih3b3JkX2xpc3Qpew0KIyAgIG91dHB1dCA8LSB0b2tlbml6ZSh3b3JkX2xpc3QpDQojICAgc2VudGVuY2VfbGVuZ3RoIDwtIGMoKQ0KIyAgIGZvcihpIGluIDE6bGVuZ3RoKHdvcmRfbGlzdCkpew0KIyAgICAgc2VudGVuY2VfbGVuZ3RoW2ldIDwtIGxlbmd0aChvdXRwdXRbW2ldXSkNCiMgICB9DQojICAgDQojICAgc2VudGVuY2VfbGVuZ3RoDQojIH0NCiMgDQojIGVuZ2xpc2hfc2VudGVuY2VfbGVuZ3RoIDwtIHNlbnRlbmNlc19sZW5ndGhfdmVjKGxpc3QodHJhaW5bLCAxXSlbWzFdXSkNCiMgb3RoZXJfc2VudGVuY2VfbGVuZ3RoIDwtIHNlbnRlbmNlc19sZW5ndGhfdmVjKGxpc3QodHJhaW5bLCAyXSlbWzFdXSkNCiMgDQojIA0KIyAjIyBBZGRpbmcgZWFjaCBzZW50ZW5jZSBsZW5ndGggdG8gdGhlIGRhdGFmcmFtZSBgdHJhaW5gDQojIHRyYWluJGVuZ2xpc2hfbGVuZ3RoIDwtIGVuZ2xpc2hfc2VudGVuY2VfbGVuZ3RoIA0KIyB0cmFpbiRvdGhlcl9sZW5ndGggPC0gb3RoZXJfc2VudGVuY2VfbGVuZ3RoDQojIA0KIyB0YWlsKHRyYWluKQ0KDQpgYGANCg0KIyMgQ29uZHVjdGluZyB0aGUgc3Vic2V0IG9mIHRoZSBkYXRhZnJhbWUNCmBgYHtyfQ0KIyBsb3dlcl9ib3VuZF93b3JkcyA8LSA4OyB1cHBlcl9ib3VuZF93b3JkcyA8LSAxMCANCiMgc3Vic2V0X3RyYWluIDwtIHN1YnNldCh0cmFpbiwgDQojICAgICAgICAgICAgICAgICAgICAgICAgdHJhaW4kZW5nbGlzaF9sZW5ndGggPj0gbG93ZXJfYm91bmRfd29yZHMgJiB0cmFpbiRlbmdsaXNoX2xlbmd0aCA8PSB1cHBlcl9ib3VuZF93b3JkcyANCiMgICAgICAgICAgICAgICAgICAgICAgICAmIHRyYWluJG90aGVyX2xlbmd0aCA+PSBsb3dlcl9ib3VuZF93b3JkcyAmIHRyYWluJG90aGVyX2xlbmd0aCA8PSB1cHBlcl9ib3VuZF93b3Jkcw0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KIyANCiMgIyMgQ2hlY2tpbmcgZm9yIHRoZSBudW1iZXIgb2Ygcm93cyB3aXRoaW4gdGhlIG5ldyBzdWJzZXR0ZWQgZGF0YWZyYW1lIGZvciB0ZXN0aW5nIHB1cnBvc2VzLg0KIyBoZWFkKHN1YnNldF90cmFpbikNCiMgdGFpbChzdWJzZXRfdHJhaW4pDQojIG5yb3coc3Vic2V0X3RyYWluKQ0KYGBgDQoNCg0KDQoNCiMgRXhhbXBsZSBmb3IgVG9rZW5pc2F0aW9uICYgUGFkZGluZw0KYGBge3J9DQp0ZXh0X3NlbnRlbmNlcyA9IGMoJ1RoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cgLicsDQogICAgJ0J5IEpvdmUgLCBteSBxdWljayBzdHVkeSBvZiBsZXhpY29ncmFwaHkgd29uIGEgcHJpemUgLicsDQogICAgJ1RoaXMgaXMgYSBzaG9ydCBzZW50ZW5jZSAuJykNCnRva2VuX2luZGV4IDwtIGxlbmd0aCh0ZXh0X3NlbnRlbmNlcykgKyAxDQpvdXRwdXQgPC0gdG9rZW5pemUodGV4dF9zZW50ZW5jZXMpDQp0ZXh0X3Rva2VuaXplZCA8LSBvdXRwdXRbMTpsZW5ndGgodGV4dF9zZW50ZW5jZXMpXQ0KIyBwcmludChvdXRwdXQpDQoNCiMgRmluZGluZyBvdXQgdGhlIGludGVnZXIgYWxsb2NhdGlvbiB0byBlYWNoIHdvcmQNCnRrIDwtIG91dHB1dFtbdG9rZW5faW5kZXhdXSR3b3JkX2luZGV4DQojIHByaW50KHRrKQ0KIyBwcmludChsZW5ndGgodGspKQ0KIyBwcmludCh0YWJsZSh0aykpDQpgYGANCiMjIFNlZWluZyB0aGUgaW5wdXQgdnMgb3V0cHV0IGZvciBlYWNoIHRva2VuaXplZCBzZW50ZW5jZXMNCmBgYHtyfQ0KZm9yKGkgaW4gMTpsZW5ndGgodGV4dF9zZW50ZW5jZXMpKXsNCiAgcHJpbnQocGFzdGUwKCJTZXF1ZW5jZSBpbiBUZXh0ICIsIGksICI6IikpDQogIHByaW50KHBhc3RlMCgiSW5wdXQ6ICIsIHRleHRfc2VudGVuY2VzW2ldKSkNCiAgcHJpbnQocGFzdGUwKCJPdXRwdXQ6ICIsIGxpc3QodGV4dF90b2tlbml6ZWRbW2ldXSkpKQ0KICBjYXQoIlxuIikNCn0NCmBgYA0KDQojIyBQYWRkaW5nIGVhY2ggdG9rZW5pemVkIHNlbnRlbmNlcw0KYGBge3J9DQojIHBhZGRlZF90ZXh0IDwtIHBhZCh0ZXh0X3Rva2VuaXplZCkNCiMgZm9yKGkgaW4gMTpsZW5ndGgodGV4dF9zZW50ZW5jZXMpKXsNCiMgICBwcmludChwYXN0ZTAoIlNlcXVlbmNlIGluIFRleHQgIiwgaSwgIjoiKSkNCiMgICBwcmludChwYXN0ZTAoIklucHV0OiAiLCB0ZXh0X3NlbnRlbmNlc1tpXSkpDQojICAgcHJpbnQocGFzdGUwKCJPdXRwdXQ6ICIsIGxpc3QodGV4dF90b2tlbml6ZWRbW2ldXSkpKQ0KIyAgIHByaW50KHBhc3RlMCgiT3V0cHV0IChQYWRkZWQpOiAiLCBsaXN0KHBhZGRlZF90ZXh0W2ksXSkpKQ0KIyB9DQpgYGANCg0KDQoNCiMgUHJlcHJvY2Vzc2luZyBDb21wb25lbnQgKFRpZHlpbmcgdXAgb2YgY2hhcmFjdGVycyBhbmQgc2VudGVuY2VzKQ0KDQojIyBHZXR0aW5nIENvbXBpbGVkIEVuZ2xpc2ggVGV4dCAoVGVzdGluZykNCmBgYHtyfQ0KIyBuIDwtIG5yb3coc3Vic2V0X3RyYWluKQ0KbiA8LSA1DQp3b3JkX2xpc3QgPC0gbGlzdCh0cmFpblssIDFdKVtbMV1dWzE6bl0NCiMgd29yZF9saXN0DQpuZXdfb3V0cHV0IDwtIHRva2VuaXplKHdvcmRfbGlzdCkNCm5ld190ZXh0X3Rva2VuaXplZCA8LSBuZXdfb3V0cHV0WzE6bl0NCm5ld19wYWRkZWRfdGV4dCA8LSBwYWQobmV3X3RleHRfdG9rZW5pemVkKQ0KDQpmb3IoaSBpbiAxOm4pew0KICAjIGlmKGkgJSUgMTAwICE9IDApIG5leHQNCiAgcHJpbnQocGFzdGUwKCJTZXF1ZW5jZSBpbiBUZXh0ICIsIGksICI6IikpDQogIHByaW50KHBhc3RlMCgiSW5wdXQ6ICIsIHdvcmRfbGlzdFtpXSkpDQogIHByaW50KHBhc3RlMCgiT3V0cHV0OiAiLCBsaXN0KG5ld190ZXh0X3Rva2VuaXplZFtbaV1dKSkpDQogIHByaW50KHBhc3RlMCgiT3V0cHV0IChQYWRkZWQpOiAiLCBsaXN0KG5ld19wYWRkZWRfdGV4dFtpLF0pKSkNCiAgY2F0KCJcbiIpDQp9DQoNCmBgYA0KDQojIyBHZXR0aW5nIENvbXBpbGVkIE90aGVyIExhbmd1YWdlIFRleHQgKFRlc3RpbmcpDQpgYGB7cn0NCiMgbiA8LSBucm93KHN1YnNldF90cmFpbikNCm4gPC0gNQ0Kd29yZF9saXN0IDwtIGxpc3QodHJhaW5bLCAyXSlbWzFdXVsxOm5dDQpuZXdfb3V0cHV0IDwtIHRva2VuaXplKHdvcmRfbGlzdCkNCm5ld190ZXh0X3Rva2VuaXplZCA8LSBuZXdfb3V0cHV0WzE6bl0NCm5ld19wYWRkZWRfdGV4dCA8LSBwYWQobmV3X3RleHRfdG9rZW5pemVkKQ0KDQpmb3IoaSBpbiAxOm4pew0KICAjIGlmKGkgJSUgMTAwICE9IDApIG5leHQNCiAgcHJpbnQocGFzdGUwKCJTZXF1ZW5jZSBpbiBUZXh0ICIsIGksICI6IikpDQogIHByaW50KHBhc3RlMCgiSW5wdXQ6ICIsIHdvcmRfbGlzdFtpXSkpDQogIHByaW50KHBhc3RlMCgiT3V0cHV0OiAiLCBsaXN0KG5ld190ZXh0X3Rva2VuaXplZFtbaV1dKSkpDQogIHByaW50KHBhc3RlMCgiT3V0cHV0IChQYWRkZWQpOiAiLCBsaXN0KG5ld19wYWRkZWRfdGV4dFtpLF0pKSkNCn0NCg0KYGBgDQoNCg0KIyMgUHJlcHJvY2Vzc2luZyBib3RoIGxhbmd1YWdlcyBjb21waWxhdGlvbnMNCmBgYHtyfQ0KcHJlcHJvY2Vzc190ZXh0IDwtIGZ1bmN0aW9uKHgsIHkpew0KICBvdXRwdXRfeCA8LSB0b2tlbml6ZSh4KQ0KICBvdXRwdXRfeSA8LSB0b2tlbml6ZSh5KQ0KICANCiAgcHJlcHJvY2Vzc194IDwtIG91dHB1dF94WzE6bGVuZ3RoKHgpXTsgeF90ayA8LSBvdXRwdXRfeFtbbGVuZ3RoKHgpICsgMV1dJHdvcmRfaW5kZXgNCiAgcHJlcHJvY2Vzc195IDwtIG91dHB1dF95WzE6bGVuZ3RoKHkpXTsgeV90ayA8LSBvdXRwdXRfeVtbbGVuZ3RoKHkpICsgMV1dJHdvcmRfaW5kZXgNCiAgDQogICMgcHJpbnQocHJlcHJvY2Vzc194KQ0KICANCiAgcHJlcHJvY2Vzc194IDwtIHBhZChwcmVwcm9jZXNzX3gpDQogIHByZXByb2Nlc3NfeSA8LSBwYWQocHJlcHJvY2Vzc195KQ0KICANCiAgIyBwcmludChwcmVwcm9jZXNzX3gpDQogIA0KICAjIENvbnZlcnRpbmcgZnJvbSBhIDJEIG1hdHJpeCB0byBhIDNEIHRlbnNvcg0KICAjIHByZXByb2Nlc3NfeCA8LSBhcnJheShwcmVwcm9jZXNzX3hbWzFdXSwgYyhkaW0ocHJlcHJvY2Vzc194W1sxXV0pWzFdLCBkaW0ocHJlcHJvY2Vzc194W1sxXV0pWzJdLCAxKSkNCiAgIyBwcmVwcm9jZXNzX3kgPC0gYXJyYXkocHJlcHJvY2Vzc195W1sxXV0sIGMoZGltKHByZXByb2Nlc3NfeVtbMV1dKVsxXSwgZGltKHByZXByb2Nlc3NfeVtbMV1dKVsyXSwgMSkpDQogIA0KICByZXR1cm4obGlzdChwcmVwcm9jZXNzX3gsIHByZXByb2Nlc3NfeSwgeF90aywgeV90aykpDQp9DQpgYGANCg0KIyMgRnVsbCBEYXRhDQpgYGB7cn0NCnRyYWluX3ggPC0gbGlzdCh0cmFpblssIDFdKVtbMV1dDQp0cmFpbl95IDwtIGxpc3QodHJhaW5bLCAyXSlbWzFdXQ0KIyBwcmludChzdWJzZXRfdHJhaW5feCkNCg0KcHJvY2Vzc19vdXRwdXQgPC0gcHJlcHJvY2Vzc190ZXh0KHRyYWluX3gsIHRyYWluX3kpDQojIHByaW50KHByb2Nlc3Nfb3V0cHV0WzRdLCkNCnByZXByb2Nlc3NfeCA8LSBwcm9jZXNzX291dHB1dFsxXTsgcHJlcHJvY2Vzc195IDwtIHByb2Nlc3Nfb3V0cHV0WzJdOyB4X3RrIDwtIHByb2Nlc3Nfb3V0cHV0WzNdOyB5X3RrIDwtIHByb2Nlc3Nfb3V0cHV0WzRdDQojIHByaW50KHByZXByb2Nlc3NfeFtbMV1dKQ0KIyBwcmludChwcmVwcm9jZXNzX3lbWzFdXSkNCg0KDQojIENvbnZlcnNpb24gYmFjayB0byBsaXN0IG9mIHdvcmRzIGZyb20gdG9rZW5pemVkIHdvcmQgbGlzdA0KIyBhdHRyaWJ1dGVzKHhfdGtbWzFdXSkkbmFtZXMNCiMgbGVuZ3RoKHlfdGtbWzFdXSkNCmBgYA0KDQoNCiMjIFN1YnNldCBkYXRhDQpgYGB7cn0NCiMgbiA8LSBucm93KHRyYWluKSAjMTAwMA0KIyBzdWJzZXRfdHJhaW5feCA8LSBsaXN0KHN1YnNldF90cmFpblssIDFdKVtbMV1dWzE6bl0NCiMgc3Vic2V0X3RyYWluX3kgPC0gbGlzdChzdWJzZXRfdHJhaW5bLCAyXSlbWzFdXVsxOm5dDQojICMgcHJpbnQoc3Vic2V0X3RyYWluX3gpDQojIA0KIyBwcm9jZXNzX291dHB1dCA8LSBwcmVwcm9jZXNzX3RleHQoc3Vic2V0X3RyYWluX3gsIHN1YnNldF90cmFpbl95KQ0KIyAjIHByaW50KHByb2Nlc3Nfb3V0cHV0WzRdLCkNCiMgcHJlcHJvY2Vzc194IDwtIHByb2Nlc3Nfb3V0cHV0WzFdOyBwcmVwcm9jZXNzX3kgPC0gcHJvY2Vzc19vdXRwdXRbMl07IHhfdGsgPC0gcHJvY2Vzc19vdXRwdXRbM107IHlfdGsgPC0gcHJvY2Vzc19vdXRwdXRbNF0NCiMgIyBwcmludChwcmVwcm9jZXNzX3hbWzFdXSkNCiMgIyBwcmludChwcmVwcm9jZXNzX3lbWzFdXSkNCiMgDQojIA0KIyAjIENvbnZlcnNpb24gYmFjayB0byBsaXN0IG9mIHdvcmRzIGZyb20gdG9rZW5pemVkIHdvcmQgbGlzdA0KIyAjIGF0dHJpYnV0ZXMoeF90a1tbMV1dKSRuYW1lcw0KIyAjIGxlbmd0aCh5X3RrW1sxXV0pDQpgYGANCg0KIyBPYnRhaW5pbmcgdGhlIG1heGltdW0gY29sdW1uIG51bWJlciBhbmQgcmUtcGFkZGluZw0KYGBge3J9DQpjb2xfeCA8LSBkaW0ocHJlcHJvY2Vzc194W1sxXV0pWzJdDQpjb2xfeSA8LSBkaW0ocHJlcHJvY2Vzc195W1sxXV0pWzJdDQoNCmlmKGNvbF94ID49IGNvbF95KXsNCiAgbWF4X2NvbCA8LSBjb2xfeA0KfWVsc2V7DQogIG1heF9jb2wgPC0gY29sX3kNCn0NCg0KdG1wX3ggPC0gcGFkKHByZXByb2Nlc3NfeFtbMV1dLCBtYXhfY29sKQ0KdG1wX3kgPC0gcGFkKHByZXByb2Nlc3NfeVtbMV1dLCBtYXhfY29sKQ0KDQoNCmBgYA0KDQojIENoZWNraW5nIENvcnJlc3BvbmRhbmNlIGJldHdlZW4gc3Vic2V0X3RyYWluIGFuZCB0bXANCmBgYHtyfQ0Kcm93IDwtIDUNCmhlYWQodG1wX3gpDQp0cmFpbl94W3Jvd10NCmBgYA0KIyMgQ2FsY3VsYXRpbmcgU3BhcnNpdHkNCmBgYHtyfQ0KY2FsY3VsYXRlX3NwYXJzaXR5IDwtIGZ1bmN0aW9uKGRmX21hdHJpeCl7DQogIHplcm9fY291bnQgPC0gMA0KICB0b3RhbF9jb3VudCA8LSBucm93KGRmX21hdHJpeCkgKiBuY29sKHRtcF94KQ0KICBmb3IoaSBpbiAxOm5yb3coZGZfbWF0cml4KSl7DQogICAgZm9yKGogaW4gMTpuY29sKGRmX21hdHJpeCkpew0KICAgICAgaWYoZGZfbWF0cml4W2ksIGpdID09IDApew0KICAgICAgICB6ZXJvX2NvdW50ID0gemVyb19jb3VudCArIDENCiAgICAgIH0NCiAgICB9DQogIH0NCiAgemVyb19jb3VudC90b3RhbF9jb3VudA0KfQ0KDQpwcmludChwYXN0ZSgiVGhlIFNwYXJzaXR5IG9mIHRoZSBtYXRyaXggaXM6ICIsIHJvdW5kKGNhbGN1bGF0ZV9zcGFyc2l0eSh0bXBfeCkqMTAwLCAyKSwgIiUiKSkNCmBgYA0KDQoNCg0KIyBDb252ZXJzaW9uIG9mIDJEIG1hdHJpeCB0byB0ZW5zb3INCmBgYHtyfQ0KY29udmVydDJ0ZW5zb3IgPC0gZnVuY3Rpb24ocHJlcHJvY2Vzc19kYXRhKXsNCiAgcHJlcHJvY2Vzc19kYXRhIDwtIGFycmF5KHByZXByb2Nlc3NfZGF0YSwgYyhkaW0ocHJlcHJvY2Vzc19kYXRhKVsxXSwgZGltKHByZXByb2Nlc3NfZGF0YSlbMl0sIDEpKQ0KICByZXR1cm4ocHJlcHJvY2Vzc19kYXRhKQ0KfQ0KDQojIGFycmF5KHByZXByb2Nlc3NfeFtbMV1dLCBjKGRpbShwcmVwcm9jZXNzX3hbWzFdXSlbMV0sIGRpbShwcmVwcm9jZXNzX3hbWzFdXSlbMl0sIDEpKQ0KIyBkaW0oYXJyYXkocHJlcHJvY2Vzc194W1sxXV0sIGMoZGltKHByZXByb2Nlc3NfeFtbMV1dKVsxXSwgZGltKHByZXByb2Nlc3NfeFtbMV1dKVsyXSwgMSkpKVsyOjNdDQpgYGANCg0KDQojIENvbnZlcnRpbmcgdG8gdGVuc29yDQpgYGB7cn0NCnRlbnNvcl94IDwtIGNvbnZlcnQydGVuc29yKHRtcF94KQ0KZGltKHRlbnNvcl94KQ0KdGVuc29yX3hbMSwgLCBdDQp0ZW5zb3JfeSA8LSBjb252ZXJ0MnRlbnNvcih0bXBfeSkNCiMgdGVuc29yX3kNCmBgYA0KDQoNCg0KIyBDb252ZXJ0aW5nIHRoZSBsb2dpdHMgYmFjayB0byB0ZXh0DQpgYGB7cn0NCg0KbG9naXRzX3RvX3RleHQgPC0gZnVuY3Rpb24obG9naXRzLCB0b2tlbml6ZXIsIHByZWRpY3Q9RkFMU0Upew0KICB0b2tlbml6ZXJfd29yZHMgPC0gYXR0cmlidXRlcyh0b2tlbml6ZXJbWzFdXSkkbmFtZXMNCiAgdGV4dCA8LSBjKCkNCiAgaWYocHJlZGljdCA9PSBUUlVFKXsNCiAgICBsb2dpdHMgPC0gbG9naXRzIC0gMSAjIyBGb3IgcHJlZGljdGlvbiBjb252ZXJzaW9uIG9ubHkgDQogIH0NCiAgZm9yKGkgaW4gbG9naXRzKXsNCiAgICBpZihpID09IDApew0KICAgICAgdGV4dCA8LSBjKHRleHQsICI8UEFEPiIpDQogICAgfWVsc2V7DQogICAgICB0ZXh0IDwtIGModGV4dCwgdG9rZW5pemVyX3dvcmRzW2ldKQ0KICAgIH0NCiAgfQ0KICByZXR1cm4odGV4dCkNCn0NCg0KIyBUZXN0aW5nIHRvIGNvbnZlcnQgdGhlIGZpcnN0IHJvdyBiYWNrIHRvIHRleHQNCiMgcHJlcHJvY2Vzc194W1sxXV1bMSwgXQ0KIyBwcmVwcm9jZXNzX3hbWzFdXQ0KbG9naXRzX3RvX3RleHQocHJlcHJvY2Vzc194W1sxXV1bMSwgXSwgeF90aykNCg0KYGBgDQoNCg0KIyBCdWlsZGluZyBhIHNpbXBsZSBSTk4gbW9kZWwNCmBgYHtyfQ0KIyBkaW0odGVuc29yX3kpDQptb2RlbF9STk4gPC0gIGtlcmFzX21vZGVsX3NlcXVlbnRpYWwoKQ0KbW9kZWxfUk5OICU+JSANCiAgbGF5ZXJfc2ltcGxlX3Jubih1bml0cyA9IDI1NiwgaW5wdXRfc2hhcGUgPSBkaW0odGVuc29yX3gpWzI6M10sIHJldHVybl9zZXF1ZW5jZXMgPSBUUlVFKSAlPiUNCiAgdGltZV9kaXN0cmlidXRlZChsYXllcl9kZW5zZSh1bml0cyA9IDEwMjQsIGFjdGl2YXRpb24gPSAncmVsdScpKSU+JQ0KICBsYXllcl9kcm9wb3V0KHJhdGUgPSAwLjUpICU+JQ0KICB0aW1lX2Rpc3RyaWJ1dGVkKGxheWVyX2RlbnNlKHVuaXRzID0gbGVuZ3RoKHlfdGtbWzFdXSkgKyAxLCBhY3RpdmF0aW9uID0gJ3NvZnRtYXgnKSkNCg0KbW9kZWxfUk5OICU+JSBzdW1tYXJ5KCkNCg0KbW9kZWxfUk5OICU+JSBjb21waWxlKA0KICBsb3NzICAgICAgPSAnc3BhcnNlX2NhdGVnb3JpY2FsX2Nyb3NzZW50cm9weScsDQogICMgb3B0aW1pemVyID0gb3B0aW1pemVyX3Jtc3Byb3AoKSwNCiAgb3B0aW1pemVyID0gb3B0aW1pemVyX2FkYW0obGVhcm5pbmdfcmF0ZSA9IDAuMDA1KSwNCiAgbWV0cmljcz1jKCdhY2N1cmFjeScpDQopDQoNCnBsb3RfbW9kZWwobW9kZWxfUk5OKQ0KYGBgDQpgYGB7cn0NCg0KaGlzdG9yeSA9IG1vZGVsX1JOTiAlPiUgZml0KA0KICB4ID0gdGVuc29yX3gsIHkgPSB0ZW5zb3JfeSwNCiAgZXBvY2hzICAgICAgICAgICA9IDEwLA0KICBiYXRjaF9zaXplID0gMTAyNCwNCiAgdmFsaWRhdGlvbl9zcGxpdCA9IDAuMiwNCikNCnBsb3QoaGlzdG9yeSkNCmBgYA0KDQoNCiMgUHJlZGljdGlvbg0KDQoNCiMjIE9idGFpbmluZyB0aGUgb3V0cHV0IGZvciBwcmVkaWN0aW9uIChUZXN0aW5nKQ0KYGBge3J9DQpwcmVkaWN0X291dHB1dCA8LSBtb2RlbF9STk4gJT4lIHByZWRpY3QobWF0cml4KHRlbnNvcl94WzUsICxdLCBucm93PTEpKQ0KIyBwcmVkaWN0X291dHB1dA0KDQoNCnByZWRpY3Rfb3V0cHV0IDwtIGFyZ21heChwcmVkaWN0X291dHB1dCwgRkFMU0UpDQojIHRyYWluX3hbNV0NCnRyYWluX3lbNV0NCmxvZ2l0c190b190ZXh0KHByZWRpY3Rfb3V0cHV0LCB5X3RrLCBwcmVkaWN0ID0gVFJVRSkNCg0KYGBgDQojIyBQcmVkaWN0aW9ucyBmb3IgVHJhaW5pbmcgc2V0DQpgYGB7cn0NCg0KcHJlZF90cmFuc2xhdGlvbiA8LSBmdW5jdGlvbihpKXsNCiAgcHJlZGljdF9vdXRwdXQgPC0gbW9kZWxfUk5OICU+JSBwcmVkaWN0KG1hdHJpeCh0ZW5zb3JfeFtpLCAsXSwgbnJvdz0xKSkNCiAgcHJlZGljdF9vdXRwdXQgPC0gYXJnbWF4KHByZWRpY3Rfb3V0cHV0LCBGQUxTRSkNCiAgY29udmVydGVkX3RleHQgPC0gbG9naXRzX3RvX3RleHQocHJlZGljdF9vdXRwdXQsIHlfdGssIHByZWRpY3QgPSBUUlVFKQ0KICBjb252ZXJ0ZWRfdGV4dFtjb252ZXJ0ZWRfdGV4dCA9PSAiPFBBRD4iXSA8LSAiIg0KICBjb252ZXJ0ZWRfdGV4dCA8LSB0cmltd3MocGFzdGUoY29udmVydGVkX3RleHQsIGNvbGxhcHNlID0gIiAiKSkNCiAgcHJpbnQocGFzdGUoIklucHV0IHNlbnRlbmNlOiIsIHRyYWluX3hbaV0pKQ0KICBwcmludChwYXN0ZSgiSW50ZW5kZWQgT3V0cHV0IFNlbnRlbmNlOiIsIHRyYWluX3lbaV0pKQ0KICBwcmludChwYXN0ZSgiUHJlZGljdGVkIE91dHB1dCBTZW50ZW5jZToiLCBjb252ZXJ0ZWRfdGV4dCkpDQp9DQoNCiMjIGBpYCByZXByZXNlbnRzIHRoZSBpbmRleCB3aXRoaW4gdGhlIHRyYWluaW5nIHNldC4NCnByZWRfdHJhbnNsYXRpb24oNSkNCg0KYGBgDQoNCg==